Dutyroll

On-call rotation calendar: show who is on call in Google, Outlook or Apple Calendar

An on-call rotation is easier to follow when it sits in the calendar people already open. There are three ways to get it there, from one-off to always current. Pick by how often your rota changes.

1. Download a file and import it once

Our free rotation schedule generator makes a calendar file (.ics) for the next 12 months from your names. Import it into Google Calendar (Settings > Import & export), Outlook (Add calendar > Upload from file) or Apple Calendar (File > Import). No sign-up. The catch: an imported file is a snapshot. After the first swap or sick day the calendar is wrong, and nobody remembers to fix 52 events.

Make the .ics file

2. Subscribe to a feed that updates itself

A subscription link (a calendar URL) is re-read by the calendar app on its own schedule, so one change at the source reaches everyone. In Google Calendar use Other calendars > From URL, in Outlook Add calendar > Subscribe from web, in Apple Calendar File > New Calendar Subscription. Calendar apps refresh subscriptions every few hours, not instantly, so treat the calendar as the overview and the message in your team channel as the hand-over.

Dutyroll gives each rotation such a link: type /dutyroll calendar in Slack and it replies privately with the link. Skip, Swap and away dates change the schedule, and the feed follows. The link is a secret URL: anyone holding it can read the rota (names and weeks only), and /dutyroll calendar <rotation> reset replaces it and turns the old one off.

3. Keep it in Slack too

A calendar shows the future; it does not tell anyone it is their turn now. Dutyroll also posts the hand-over in the channel at the time you pick, with Skip and Swap with next buttons:

On call this week: @dana. Next: @lee.
[Skip] [Swap with next]

What the calendar feed does not do

Add to Slack Free for one rotation. Pro is $9/month per workspace.

Next, Slack asks you to sign in to your workspace, then shows Dutyroll's 4 permissions before you press Allow: add the /dutyroll command, post messages, post in public channels without an invite, and see the member list (names, time zones). Dutyroll never reads messages. Not in the Slack Marketplace yet: Slack lists apps only after 10 workspaces use them. Free plan: 1 rotation, no card.

Set it up in two minutes

  1. Add Dutyroll to Slack (the workspace admin may need to approve it).
  2. In the channel where the hand-over should appear, type /dutyroll new.
  3. Fill in the form: the duty's name, the people in order, the channel, weekly (pick the day), every weekday, every 2 weeks or monthly (pick the day of the month or the last Friday, say), and the time. The time is in your Slack time zone.
  4. Dutyroll posts an announcement now, and the hand-over at the time you chose: who is on duty and who is next, with Skip and Swap with next buttons.

What Dutyroll does not do

Related: on-call rotation in Slack · 12-month on-call schedule template · weekly rotation template

More guides