Color-coded calendars in SharePoint are a simple to create, visually appealing, popular and easy way to manage resources that, for whatever reason, cannot be managed using Outlook calendars.
A common use case for this option is to manage pool cars in ‘local’ business areas (as opposed to the entire organisation). This avoids having to add tens of pool cars as resources in Exchange and allows business areas to manage the resources independently.
What is a color-coded calendar?
A color-coded calendar is a SharePoint calendar that allows end users to view calendar entries visually. When configured (usually takes <30 minutes for 10 resources), color-coded calendars look something like the view below.
Why not use Outlook calendars?
As noted above, resources can be created in Exchange so they appear in Outlook (and can also be used in SharePoint calendars). This may be fine for a small business, but for larger companies (we had 9,000 geographically dispersed staff), adding and managing (a lot of) vehicles for ‘local’ business areas was considered too much.
One of our business areas used color-coded calendars for multiple purposes:
- To book meeting rooms. Each meeting room (which had its own calendar) used color-coding to indicate if the meeting was for internal or external staff.
- To book and manage pool cars.
- To book and manage other pool vehicles (such as minibuses).
How to create a color-coded calendar
The three steps to create color-coding in a SharePoint calendar are described below. If you plan to create these types of calendars, it is recommended that you create a dedicated calendar for the purpose, e.g., ‘Pool Car Bookings’. In summary the steps are:
- Create multiple choices in a SharePoint calendar choice column.
- For each choice, create a view.
- From the master calendar view, create a calendar overlay for each view, changing the color for each.
Keep in mind that these calendar can only have ten calendar overlays, each of which maps to a choice in a drop down list.
Step 1 – Create the choice options
- Go to the calendar list settings and scroll down to the column settings.
- Change the name of the choice column ‘Category’ to the name that you want to use – e.g., ‘Pool Car’.
- Change the choice options to the options you want the users to select from, for example ‘XYZ123 Red Toyota Corolla’. Try to keep these with a consistent naming structure. Record each of the options in Notepad or some other text editor as we will come back to these shortly to add the list view URLs.
- Remove the option in this column for end-users to select their own value.
- Click OK.
While you are in this section, you might consider changing the default ‘Title’ column to ‘Driver’, and the default ‘Location’ column to another value. See below for how to change the order in which these options will appear.
Step 2 – Create the list views
Create a list view for each of the choices in the list column in Step 1. There are a couple of ways to do this, I suggest this one for anyone doing this for the first time. Another way to do it is via the ribbon menu.
- Go to the calendar list settings and scroll down to Views. The default options are ‘All Events’ (which shows the calendar items in a list), ‘Calendar’, and ‘Current Events’.
- Click on ‘Create view’ beneath the existing options and repeat this for each new view.
- Click on ‘Calendar View’.
- Give the new view a name. As this view is generally not going to be used, the name can be a short version of the choice option, without spaces, e.g., ‘YYZ123RedCorolla’. This will ensure that you get a clean URL without any spaces. URLs with spaces can be the cause of problems if the URL is copied but it doesn’t copy past the first space.
- Scroll down to the Filters section and change the filter to sort by the Pool Car (column) to equal the exact name in the choice column – ‘XYZ123 Red Toyota Corolla’. (The example below shows a different choice option, for demonstration only).
- Click OK, then copy the view URL and record it next to the choice name, e.g., XYZ123 Red Toyota Corolla – https://tenantname.sharepoint.com/teams/sitename/Lists/PoolCars/YYZ123RedCorolla.aspx
- Repeat for every choice option, up to ten views per calendar (only).
Step 3 – Create the calendar overlays
Now return to your calendar main view making sure that you have ‘calendar.aspx’ in the URL.
IMPORTANT note – It is quite easy to accidentally open one of the views you just created and create calendar overlays there. If you do this, you may create the calendar overlays ‘under’ that view instead of the main calendar view. If you do this, you will need to go back to the calendar view and delete all those calendar overlays.
Assuming the URL now has ‘calendar.aspx’, following the next steps.
- Click on CALENDAR in the ribbon menu. (Note, you can create the views above here as well). The ‘Current View’ should show as ‘Calendar’.
- Click on ‘Calendars Overlay’. In the next screen, click on ‘New calendar’. You will repeat this process for each of the calendars you create.
- For ‘Calendar Name’, copy the same text as the choice. e.g., XYZ123 Red Toyota Corolla. Leave the option as ‘SharePoint’.
- In the Calendar Overlay Settings section:
- Enter description if required.
- Choose a color. You have 10 colors to choose from and these cannot be changed.
- In the ‘Web URL’, delete the existing URL and copy the URL of the view that matches the name. Click ‘Resolve’ and wait a second or two.
- The ‘List’ drop down should now show the Pool Car calendar name (e.g., PoolCars’); if it doesn’t, click the down down and select it.
- In the ‘List View’ drop down, choose the List view (which should be the same as in the URL you pasted in Web URL).
After you have created each calendar overlay, the main calendar should now show each choice in a color box.
One last step – very easy to forget!
After you have created each calendar overlay, the main calendar is still ‘visible’. This means that any time you add a choice option, the calendar will show both the ‘master’ calendar entry as well as the colored-calendar entry.
To remove the master calendar from view, go to the primary ‘calendar.aspx’ view, click on CALENDAR, and click ‘Modify View’ in the ribbon menu.
Scroll down to the Filters section and change the choice to show only if the ‘PoolCar’ column is equal to ” ” (blank). As only completed items will be displayed, this removes any pool car from the master calendar view.
How to change or remove a choice option
Removing a choice option is the exact reverse of the process described below:
- Go to the calendar overlays, click on the overlay and click on ‘Delete’.
- Go to the calendar list settings, scroll down to the list views, click the list view, and click on ‘Delete’.
- Go to the calendar list settings, scroll down to the columns and click on the choice column. Remove the choice option.
Changing a choice option is possible but you must:
- Change the choice option. (Keep a note of the choice)
- Change the view name and filter in the view. (Keep a note of the view URL)
- Change the name of the calendar overlay, delete the existing view URL and replace it with the new one, click ‘Resolve’, and fix the List and List view options.
It is VERY easy to break these calendars if you don’t follow the exact steps. On the other hand, these are very easy to troubleshoot. The main ‘problems’ that arise are when a Site Owner or end-user with contribute permissions:
- Doesn’t create the overlays from the main ‘calendar.aspx’ view.
- Changes or adds a choice column without changing or creating a new view and calendar overlay.
- Changes or adds a view with or without changing the choice column.
- Changes a calendar overlay but forgets to click Resolve or doesn’t select the correct options.
- Forgets to change the main ‘master’ calendar view to filter by ‘pool cars’ is equal to ‘blank’.
Four important additional points to note:
- Removing or changing a choice option does NOT remove the option retrospectively. This means that all previous history of that vehicle
- If you enable versioning on the list (via list settings), you will have a record of changes made to the list.
- You can display (and edit) the complete listing via the ‘All events’ view.
- Train your users to:
- NOT use the ‘All Day Event’ option as this carries the booking to the next day. Instead, remind them to choose ONLY the timeframes they need.
- NOT use the ‘Recurrence’ option. However, if you decide to use this, train users to not to change the option from ‘No end date’ to an actual date.
It is possible to add a simple formula to a calendar column to prevent bookings being made more than x days in the future.
How to change the order of the options that appear
The default calendar data entry fields are listed below. To change the order, click on the calendar’s List Settings, scroll down to ‘Content Types’ and click on ‘Event’.
The ‘Column order’ option appears at the bottom beneath the list of columns. Note that you cannot remove the ‘All Day Event’ or ‘Recurrence’ option.
Enjoy color-coding, or for my British and Australian readers, colour-coding.