Color code your SharePoint calendar

A nice new feature in SharePoint 2010 is the ability to roll up multiple calendars into one, and color code them. In previous versions of SharePoint, this was something that was only doable with third-party products or some serious jQuery.

Consider the following scenario. The sales department of Contoso has a single calendar they use to track and manage their events, like trade shows, client meetings, follow up calls, department meetings, etc. They have it all in one calendar, but it’s a mess, and hard to see important events.

Boring SharePoint Calendar View

Instead, they would like to view each category of event in its own color. Like this:

Color coded SharePoint calendar

This is simple to do with a single calendar, there’s just a little leg work up front.

Before we begin: one down side to this is that it’s not easily replicable. Once you create your calendar, you cannot copy or move it to another location. You’ll need to recreate it again in your new location. So start with your calendar view or web part you want to use.

One more note: it has been discovered that once you’re using the calendar overlay, clicking on an event will open a new window to view the event. It will not use the modal dialog box. I’m betting this is a “feature” since the overlay could technically pull from calendars from other lists and sites. I’ll see if I can figure a way around that. ;)

To make this pretty calendar, we need to make a view for each color set we want. By making each view, we can overlay each view over the calendar and then select a color for each. Creating each view will require the filter data to be in the appointment in some manner. Ideally a choice field has been added with options to choose from, but if your users were typing in “Tradeshow” or “Meeting” in the Title field, we can filter on that as well.

First thing we do is modify the default view. Chances are your current default view is Calendar, which includes all items. This will be our base for our colorful masterpiece. This default view will automatically assume the green color. Go head and modify this view to weed out anything you don’t want using a unique color (i.e. set the filter where category is equal to blank, as long as the users specify a category it shouldn’t show up in this view).

Now create a view for each color set.

Quick steps to create a view

  • In the ribbon, click the Calendar tab, then click Create View
  • On the bottom half of the page, select existing view Calendar
  • Name it accordingly.
  • Scroll down to the Filter and specify your filter
  • Click OK

Continue these same steps to create each view. At the end, you should have a few views. Check out each view and ensure you’re seeing unique values in each. If you see the same value in more than one, it will appear more than once (in each color) in your color coded calendar.

Once your views are made, go to your site home page and browse to your calendar page. This will ensure we’re on the default page that your users will also access.

Now let’s bring it all together

  • In the ribbon, click the Calendar tab
  • Click Calendars Overlay
  • Click New Calendar
  • Name it, preferably the same name as your view
  • Select your color
  • Ensure the correct URL is specified and click Resolve
  • Select your Calendar list
  • Select your View
  • Check Always Show
  • Click OK

Do this for each view and then click OK to return.

Now you have a pretty color coded calendar! You’ll also see a legend on the left, which helps define the colors for your users.

Color code SharePoint legend

Don’t forget your missing appointments! Make sure your views are including all of your appointments. In my example, if the Category field isn’t required, users can create appointments without specifying a category. This would cause appointments to go missing in our new view. To resolve this, create another view which includes a filter to include all but the above items.

Want to change up the colors? Check out my other post: http://davidlozzi.com/2012/06/20/customize-the-sharepoint-calendar-colors/.

Happy SharePointing!

89 thoughts on “Color code your SharePoint calendar

Add yours

  1. Hmmmm. I’m more than willing to see about doing that if I can track down where the code is located.

    1. There is no code for that in SharePoint. You’ll need to bring your own code and insert it into the page. You can probably use the same web part if you added custom CSS to change the colors. Try something like this, which works on my SP 2013 site:

      for(var i = 1; i < document.getElementsByClassName("ms-acal-apanel-item").length; i++){
      document.getElementsByClassName("ms-acal-apanel-item")[i].href = "#"
      }

  2. The legend on the left has hyperlinks that I don’t want there. I’d like it to only be a legend for the color coding. I can’t find where I can edit that. Is it doable?

      1. To change the hyperlinks on the left into something that just serves as a guide to the color coding I chose Inspect Element from my context menu in IE 11, selected an item and chose Edit as HTML changed this:

        Service

        into this:

        Service

  3. Well, that was interesting. I ran the update utility even though I’d just installed the patch roll up that came out this month, restarted the server and now the control appears to be working.

  4. I’m late to the game but we just need to use Sharepoint Foundation 2013. If I look at my calendar in calendar view the Calendar Overlays button is disabled and apparently there is no way to enable it in that view. But where do I start in terms of this process then?

    1. Hmmm… I’m not sure what would cause that button to be disabled. I haven’t come across that yet. Try creating a new calendar, and see if the button works there. There is probably something in this calendar that’s blocking you, if it works on another calendar then you can start comparing settings and such.

  5. Its a very helpful posts. I am facing couple of issues:
    1) I created a calendar overlay with 3 views. But when I click on individual view from the side nav it shows default settings. But I want the events to be displayed in same color as on the previous page. How can i do that?

    2)Also, when I click on individual calendar, I am unable to see the side nav as earlier and hence cannot switch between views. Example :- If I have 3 views overlaid on calendar view, and I click on any one of them then i just see one default view. Please help!

  6. Does this require two Calendars? One to display and the other to build the overlays on? When I build all my views on one calendar it does not allow me to choose that same calendar on the overlay screen. It makes every calander except the one I’m creating the overlay for available.

    1. You can do it with one calendar. You’ll need to make views for each overlay, as you noticed you can’t use the base view as an overlay, it’s already included and will default to the green color.

  7. Hi David,
    do you happen to know a way to show the calendar in a workweek view?
    (Who wants to work on a saturday or sunday :-) )
    Kind rgds,
    Yvonne

    1. That would require some custom CSS/JS to hide just those columns, then update the other days of the week to span into the missing space. Not impossible, but on the complex side. I’ll add it to my list, not sure when I can bust it out though.

  8. Great solution! I have implemented and have created 5 calender with different colors. I have a small issue, when I click the individual calenders it open immediately. But if I click the calenders in view, the calender opens one by one with a delay 4,5 seconds. Is there any solution to open all the calenders together? Thank you for your help.

  9. Hi,

    I tried this on SharePoint online 2013 and when creating a new calendar, the “list” & “list view” dropdowns are both blank. Any ideas what I’ve done wrong?

    Thanks!
    Stephen

    1. Worked it out – the Web URL included a space. I replaced that with %20 and suddenly the dropdowns appeared. Works perfectly now!

  10. Hi,

    I tried this on SharePoint online 2013 and when creating a new calendar, the “list” & “list view” dropdowns are both blank. Any ideas what I’ve done wrong?

    Thanks!
    Stephen

  11. I have implemented this in SP2013, however when I add an item to the calendar after the filter is applied, i get a double entry. One in the color of the assigned filter, the second in the default calendar color which I cannot remove. any ideas?

    1. Hi Kyle,

      The base view, or your default view, needs to be filtered as well to exclude the values in your other view overlays. Generally, the default view could have a filter of where Category is blank, and the other views are your specific categories. Let me know if I can help.

    2. Ignore me. In SP2013 you have to scroll down to a different section of the screen to effect the defauly view.

  12. hi David!
    i am working on sp 2013 env, its seems that the issues with “modal dialog box” JavaScript solution dose not work on SP 2013!

  13. This is part 1 of what I’m looking for, and is a little more simple than what I have implemented in many different calendars and overlaying on one shell calendar. Once the suggested calendar above is implemented with different colors for different categories can this calendar be shared with Outlook maintaining Events and their category colors?

    1. No, unfortunately Outlook won’t carry of the overlays. From what I can tell, the overlays are very superficial, and only care about the one page they were added to. Very selfish…

  14. Hi David.
    Love the post. I have one issue though. If a user clicks on one of the Calendars listed under ‘Calendars in View,” the page refreshes with only the Default view but with everything color coded as the default calendar color. Though all of the events are there, I can see this being a huge headache for me as an IT support person. Many people are going o be confused.
    Is there any way to prevent this from occurring? I may be missing something as I’m very new to SP. Thanks

Leave a Reply

Powered by WordPress.com.

Up ↑

%d bloggers like this: