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.
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:
[Skip] [Swap with next]
What the calendar feed does not do
- It is read-only: you cannot drag an event to swap shifts. Use the Swap button in Slack.
- It does not page anyone or sync with PagerDuty or Opsgenie.
- It lists the people on the schedule by their Slack display names, and refreshes them about twice a day.
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
- Add Dutyroll to Slack (the workspace admin may need to approve it).
- In the channel where the hand-over should appear, type
/dutyroll new. - 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.
- 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
- It does not page or call anyone and has no escalation; it posts a message in a channel. If you need phone or SMS alerts, use a paging tool and keep Dutyroll (or not) for the visible weekly hand-over.
- It does not sync with PagerDuty, Opsgenie or calendars (it can publish the rota as a read-only calendar link, see
/dutyroll calendar), and does not update a Slack user group (@oncall) yet. - Cadences are weekly (one day), every weekday (Mon-Fri), every 2 weeks or monthly (a day of the month, or the last Friday, say, of it). No custom shift lengths. Away dates are entered in Dutyroll (Mark away, and the hand-over skips that person); there is no sync of away dates from a calendar or HR tool.
- It is new (October 2026) and not yet in the Slack Marketplace; you install it from this site.
Related: on-call rotation in Slack · 12-month on-call schedule template · weekly rotation template
More guides
- On-call rotation in Slack
- Standup host rotation in Slack
- Support and bug triage rotation in Slack
- Slack rotation app pricing: per workspace vs per user
- Rotating a name with Slack Workflow Builder (and what to use instead)
- Round robin in Slack: a scheduled round-robin app
- Slack rotation apps compared: Pagerly, Rotation App, RosterBird, Dutyroll
- A duty roster in Slack
- Weekly rotation schedule template for a team
- On-call rotation calendar: Google, Outlook, Apple
- Weekend on-call schedule: a fair rotation
- Holiday on-call schedule: fair cover
- On-call handoff template: what to write
- On-call swap request: template and rules
- PagerDuty alternative for a Slack on-call rota