On-call rotation template

PagerDuty and Opsgenie own the paging. This template covers the people who aren't getting paged but still want to know who's on call, like a support lead answering a customer or a manager checking holiday coverage. It's a spreadsheet with one row per shift, published as a feed the team subscribes to on the calendar they already look at.

There's no recurrence rule to set up because there's no recurrence at all. Each rotation period is its own row. In Sheets, type the first two rows, select them, and drag-fill a quarter of weekly handoffs in a few seconds. A swap is a two-cell edit, and the event updates in place on every subscribed calendar.

Opens a live preview of the sample events below — no account needed. Swap in your own rows when you're ready.

The columns

One row per event, headers in the first row. That's the whole format.

ColumnWhat it becomesExample
Start dateFirst day of the shift. Explicit dates, one row per rotation period.9/7/2026
End dateHandoff day, when the next person takes over.9/14/2026
On-callBecomes the event title, so the name is what shows on the calendar grid.Priya N. — primary on-call
NotesOptional. Swap history, escalation info, or anything else the team should see in the event.Swapped with Marcus

Sample data

This is exactly what “Use this template” loads into the preview — replace it with your real schedule.

Start dateEnd dateOn-callNotes
9/7/20269/14/2026Priya N. — primary on-callLabor Day week
9/14/20269/21/2026Marcus T. — primary on-call
9/21/20269/28/2026Elena R. — primary on-call
9/28/202610/5/2026Dmitri K. — primary on-call
10/5/202610/12/2026Sam W. — primary on-callSwapped with Aisha
10/12/202610/19/2026Aisha B. — primary on-callSwapped with Sam
10/19/202610/26/2026Tom H. — primary on-callAt conference Tue–Thu, slower to laptop
10/26/202611/2/2026Priya N. — primary on-call
11/2/202611/9/2026Marcus T. — primary on-call
11/9/202611/16/2026Elena R. — primary on-call
  • Don't type every row. Enter the first two shifts, select both rows, and drag-fill. The dates step forward a week at a time and a quarter is done.
  • Put the person's name first in the On-call column. It becomes the event title, and month view truncates, so the name needs to come before anything that might get cut off.
  • Handle a swap by editing the two names, not by adding rows. The existing events update in place on every subscriber's calendar with no duplicates.
  • Weekly shifts are 52 rows a year, so a single rotation fits the free plan's 50-event feed for most of a year. Delete past rows as you go, or move to Pro when you add a secondary rotation.

Questions

Should this replace PagerDuty or Opsgenie?
No. If a page has to wake someone at 3 AM, use a real paging tool. This is the calendar layer on top: teammates, adjacent teams, and managers can see who's on call without logging into the incident tooling.
Our handoff is Monday at 10 AM, not midnight. Can the shift reflect that?
With just dates, shifts render as all-day events spanning the week, which is what most teams want on a calendar grid. If the exact handoff hour matters, add a start-time column and map it, and the shift will start at 10 AM on the handoff day.
How fast does a swap show up on people's calendars?
The feed re-syncs from your sheet hourly on the free plan and every 15 minutes on Pro. Apple Calendar and Outlook usually pick up the new contents shortly after. Google Calendar refetches subscribed feeds on its own schedule and can take up to 24 hours.
We have primary and secondary rotations. One feed or two?
Two feeds is cleaner. People subscribe to just the rotation they're in, and each feed stays under the event limit longer. The free plan covers one feed; Pro ($12/mo or $99/yr) covers 10, enough for primary, secondary, and a few sister teams.

Start with the sample, finish with your schedule.

The preview is live in seconds. Your roster subscribes once and stays in sync.

Use this template