Put your on-call rotation on everyone's calendar

The rotation already lives in a sheet: who's primary, who's secondary, when handoff happens. What's missing is a version people can glance at on their own calendars, next to their meetings, and one their partners can see at home, so weekend plans don't depend on asking you.

CalRelay turns that sheet into a calendar feed. Everyone subscribes once, and every swap and schedule change you make in the sheet reaches their calendars automatically. To be clear about the boundary: your paging tool still owns alerting. This is the layer for people planning their lives around the rotation.

Free plan, no credit card. No account needed to see your events.

1

Lay out one row per shift

There's no recurrence support, so build the sheet with one row per shift: the engineer's name as the title, a start date, and a time (or leave time blank for all-day shifts). Drag-fill handles a year of weekly rotation in seconds, and swaps are just edits to individual rows.

2

Connect it to CalRelay

Paste the sheet's share link (or a CSV URL, or the table itself). CalRelay maps the columns and previews every shift. Any row it can't confidently parse is held aside with its raw values rather than guessed at.

3

Share the subscribe page with the team

One hosted page with Apple, Google, and Outlook buttons. Engineers subscribe, and so can their partners. Nobody needs an account, and the feed is read-only, so home phones see the rotation without any access to your tooling.

Why swaps are where spreadsheets-as-schedule breaks down

A rotation is easy to publish once and hard to keep current. Every trade, every parental leave, every reshuffle makes the copy in people's heads (or in a months-old email) wrong. Whoever relies on the stale copy finds out when they get paged on what they thought was a free weekend.

With a feed, a swap is one cell edit. CalRelay re-reads the sheet, the feed updates, and the change lands on subscribed calendars, updating the existing shift rather than duplicating it. Apple Calendar and Outlook typically reflect it within about 15 minutes of the feed updating. Google Calendar fetches on its own schedule and can take up to 24 hours, so a same-day swap deserves a Slack message too.

This sits beside PagerDuty, not in place of it

Paging tools own alerting, escalation, and overrides. CalRelay doesn't page anyone and isn't trying to. What paging tools lack is a view for people outside them: the engineer checking next month while planning a trip, the manager scheduling a release, and partners and families, who will never have a PagerDuty login but do plan weekends around the rotation.

If your paging tool is the rotation's source of truth, this guide isn't the fit. But plenty of teams schedule in a sheet because swaps, partial shifts, and one-off coverage like "Dana covers Tuesday night only" are easier to represent there. For those teams the sheet stays the source of truth and the feed is the calendar view of it.

Failure modes, handled the boring way

If the sheet's structure changes or access is lost, CalRelay freezes the feed at its last good state and emails you, so subscribers keep the last valid rotation rather than an empty calendar. On Pro, feed-health email alerts flag parse problems early. That matters more here than for most schedules, because a silently wrong on-call calendar costs someone a night.

Questions

Can it generate the rotation for me?
No. CalRelay publishes the schedule you keep; it doesn't compute one. Drag-fill in your spreadsheet is the rotation generator: fill a year of weekly shifts in seconds, then hand-edit the exceptions.
Why one row per shift instead of a repeating event?
There's no recurrence support. A repeating event can't represent a real rotation anyway, since swaps and coverage exceptions come up constantly. One row per shift means any single shift can change without touching the rest.
Can partners and families subscribe?
Yes. The subscribe page works for anyone with the link, no account needed, and the feed is read-only. A partner's iPhone shows exactly who's on call without any access to your systems.
How fast does a swap show up on calendars?
CalRelay re-reads the sheet every 15 minutes on Pro (hourly on the free plan). Apple Calendar and Outlook typically show the change within about 15 minutes of the feed updating. Google Calendar can take up to 24 hours, since Google refetches feeds on its own schedule. For a same-day swap, tell the team directly and let the calendars catch up.
How should we handle handoff times across time zones?
Put explicit start times in the sheet and pick your locale during setup so dates and times are never guessed. Shifts with times are published with proper timezone handling, and date-only rows become all-day events.

Your schedule already exists.

Turn it into a calendar your whole roster can subscribe to. Takes about three minutes.

Create your free feed