SharePoint: Multicoloured events in Calendar

In a shared calendar, often you want to show different categories of event as different colours. I recently had to set up a calendar for lab bookings which would show whether a booking was for a full-time event, for instance a user using a piece of machinery, or an intermittent event such as a user popping in to use a microscope quickly, or running a long-term experiment in a machine that would not require full-time attendance.

SharePoint being SharePoint, this was a nontrivial experience, quite the opposite of simply setting an event colour on something like Google Calendar.

As it took me a while, I thought i'd document how to do it so it could hopefully speed it up if I have to do it again, or if anyone else wants to know how to do it simply and easily.

If you already have a calendar set up you want to use, skip to Part 2!

Part 1 - Create calendar

Step 1 - Add a new App
Step 2 - Select Calendar
Step 3 - You've now made a calendar!

Ok, so now we have installed and set up a new Sharepoint calendar in the group. Now, let's set up the different categories of event we want to be different colours.

Part 2 - Add categories

Calendars are actually custom lists in SharePoint, so edit list settings
Edit category column by clicking its name
Add your categories you want to show as different colours.

Now, we've got different categories we can add to our events, but they all show up as the same colour. In the next part, we will set up some test events to check we're doing things right for the next steps.

Part 3 - Add test events

Create an event with no category, and subsequent events with each of the categories you made in the previous step for testing.
You should now have an event with no category, and multiple for each of the categories you made above.

Ok now we've got a test event with No category (this is important, as people will forget to add the category, and we don't want the event to just disappear), and test events for each of our categories. Now, let's create a view for each category.

Part 4 - Create new views for each category

From the calendar menu, select Create View
Give your view a name, e.g. "Full-Time events only", and set the "Show Items only when the following is true" radio button. Then match the fields to set your category.
When you save, you'll see your calendar with only one category of event.

Repeat these steps for each of your categories, (in my case twice).
There is no need to repeat it for events of no category as we'll set up the default calendar view to show these in the next step.

Part 5 - Main view setup and overlays.

Go back to the default "Calendar" view by selecting it from the dropdown

This view is the default one that loads when you click on the calendar.

This view is currently showing all events. We want to modify it to only show events with no category. Click "Modify View" from the Calendar tab.
Select the radio button for "Show items only..." and set Category is equal to [blank]
Now you should only see events with no category in the calendar.

So we've just edited the default view to only show events that don't have a category. If you miss this step, you'll have events showing up multiple times when we overlay the calendars, once in the new overlays we're about to make, and once in the default view.

Now, we're going to add in our custom views. Select "Calendar Overlay". Followed by the "New Calendar" button on the next page.

The "new calendar" button is a bit difficult to see on the overlays page. It is there I promise!

Add your calendar for one of your categories. Press "Resolve" to populate the lists and change "List View" to the correct one.
Do the same for the other categories
Now, your calendar overlay should show a calendar for each of your "Views" which in turn represent each of your "Categories"
Return to the main calendar page and make sure the default "Calendar" view is selected. You should now have your different categories in different colours.

Congratulations, you now have multicoloured events in different categories in your calendar!