Fork me on GitHub

Support rota scheduling

Configuring the Google Calendar

  1. Create a new shared Google Calendar (any hosted calendar with an .ics feed should be fine, but we’ve only tested/used with Google Calendar). It doesn’t matter what you call it.
  2. Click the dropdown arrow next to the calendar you’ve chosen and choose Settings
    • Calendar list
  3. Scroll down to Private address and copy the link address of the ICAL link.
  4. Use this address as the value for CALENDAR_ICAL_URL in your production.env file (see Configuration).

How sync works

Syncing happens periodically (every 30 minutes).

The sync attempts to reconcile the lower-cased title of the calendar entry with the lower-cased username of the person who should be on duty at that time.

For example, if David Buxton (username dbuxton) should be on duty from 12 noon on Monday to 8pm on the same day, you would create a calendar entry (on your team rota calendar) with the following properties:

  • Title: dbuxton
  • Start: 12:00pm
  • End: 8:00pm

The new event will be picked up on Cabot’s next periodic calendar sync and used to route alerts to the correct person.

Verifying rota

You can check that the rota has synced correctly by checking the Duty rota page (linked from the nav bar):

Duty rota

More sophisticated rotas

Our primary monitoring pattern is relatively simple: we normally have one person “on duty” and a separate fallback duty officer.

Many organisations will have more complex use cases, which Cabot currently doesn’t support.

If you need a solution that allows you to schedule several support layers, configure alert escalation, allow staff members to swap shifts, or take advantage of remote colleagues in different timezones to provide out-of-hour cover, you should really look at a commercial solution such as Pagerduty.