Nov 14 2019 02:42 PM
I'm creating calendar views from a list. The list contains multiple date columns such as due date, notification date, start date, and end date. I want each of these to be represented as distinct, one-day events on the calendar so for Time Interval I am using the same column for both the Begin and End columns. I've read about Calendar Overlays but the articles only mention other versions of Sharepoint besides Sharepoint Online. I've created two calendar views so far and I do not see anything about Overlay in the Calendar menu. I'm guessing this is yet another feature that was available in prior versions of Sharepoint but not yet available in Sharepoint Online. If so, has there been any discussion about when it might be available?
Nov 14 2019 04:31 PM
Solution@0123456789 You are halfway there, if I understand what you are trying. You've got your individual calendar views on your list, that's the first step.
Overlays can only be done on a calendar list, not on a generic list that happens to have some calendar views.
Go to site contents and create a calendar list, or use the Event list if one has already been created. It's basically a calendar list with a modern front end. On that calendar view you'll see the 'calendar overlay' button there. You should be able to add your other list views to this to get your color coding.
Nov 14 2019 06:59 PM
@Robin Nilsson I think I fall into the "cannot be done" category because I'm creating calendar views of an existing list, not a dedicated calendar list. The list has a lot of columns (project name, website, description, contact name, contact email address, application date, notification date, project start date, project end date, etc). I then went to List Settings -> Create View -> Calendar and then used one of the date columns for both Time Interval columns. I repeated that for each of the date columns. So sounds like I may be out of luck.
Nov 14 2019 07:26 PM
@0123456789 Oh wait. I might have misunderstood you. I found another article and it seems to be doing what I want. Thanks for your help!
Nov 15 2019 07:45 AM
@Robin Nilsson Hi Robin. I'm hoping you might be able to help me with one other calendar-related issue. In the month view, there is a timestamp above the title. I don't include the time in any of my date columns so they all say 12:00 a.m - 12:00 a.m. I've attached a screenshot if it helps to understand the situation. Anyway, any idea how I can get rid of the time? I don't see it listed as an option.
Nov 15 2019 12:46 PM
@0123456789 That one is more difficult. I've only used it on classic view on SP2013 on premise, so not sure it will work with SharePoint online. The calendar entries are async so it's more difficult to code for. To the calendar page I added a script editor and included this. It removes the time AND it expands the calendar to show everything, not just the first 3 events.
<script src="/Javascript/JQuery/JQueryMin-1.11.1.js"></script>
<script type="text/javascript">
// this version works faster, but there's a memory leak - the IE memory
// keeps growing. Change it from 100 to 1000
// and if you get to a month that has no items, it turns off the expand.
// remove the expandCheck.
// this works in Chrome
var $si;
var $sii;
_spBodyOnLoadFunctionNames.push("ready");
function ready()
{
ExecuteOrDelayUntilScriptLoaded(init, "sp.ui.applicationpages.calendar.js");
}
function init()
{
$si = setInterval(expandAll, 1000);
// $sii = setInterval(expandCheck, 2000);
}
function expandAll()
{
var $a = $("a.ms-cal-nav");
if($a.html() != null)
{
$a.each(function(i){
if($(this).text().indexOf("more")>-1)
{
$(this).find('img').trigger("click");
}
});
}
$('div.ms-acal-ctrlitem').hide();
$('div.ms-acal-time').hide();
$a = '';
}
function expandCheck()
{
var flag = true;
var $a = $("a.ms-cal-nav");
if($a.html() != null)
{
var len = $a.length;
for(var i=0; i<len; i++)
{
if($a.eq(i).text().indexOf("more")>-1)
{
flag = false;
}
}
if(flag)
{
clearInterval($si);
clearInterval($sii);
}
}
}
</script>
Nov 14 2019 04:31 PM
Solution@0123456789 You are halfway there, if I understand what you are trying. You've got your individual calendar views on your list, that's the first step.
Overlays can only be done on a calendar list, not on a generic list that happens to have some calendar views.
Go to site contents and create a calendar list, or use the Event list if one has already been created. It's basically a calendar list with a modern front end. On that calendar view you'll see the 'calendar overlay' button there. You should be able to add your other list views to this to get your color coding.