Calendar (iCal)
Subscribe to a schedule from any calendar app via iCal feed.
Calendar feed
Each schedule has a private, token-scoped iCal feed compatible with Google Calendar, Apple Calendar, Outlook, etc.
Get feed
GET /oncall/schedules/{schedule_id}/calendar.ics?token={cal_token}
Returns standard text/calendar (RFC 5545) output. No auth header — auth is via the token query param so you can paste the URL into a calendar app.
textBEGIN:VCALENDARVERSION:2.0PRODID:-//Happy Uptime//On-Call//ENBEGIN:VEVENTUID:lyr_primary-usr_alice-2026-04-17@happyuptime.comSUMMARY:[Primary] Alice on callDTSTART:20260417T000000ZDTEND:20260422T130000ZDESCRIPTION:Engineering On-Call rotationEND:VEVENT...END:VCALENDAR
Generate token
POST /oncall/schedules/{schedule_id}/calendar/tokens
json{ "data": { "token": "cal_xxx", "url": "https://happyuptime.com/api/v1/oncall/schedules/sch_abc/calendar.ics?token=cal_xxx" } }
Tokens are read-only and scoped to one schedule.
Revoke token
DELETE /oncall/schedules/{schedule_id}/calendar/tokens/{token}
Existing subscriptions stop receiving updates.
Behavior
- Window: next 90 days from the time of request
- Includes overrides and fixed shifts (so calendar matches actual paging)
- Each shift is a discrete
VEVENT; noRRULErecurrence (calendar apps interpret rotations differently) - Cached for 60 seconds at edge
See also
Calendar integration guide — step-by-step subscribe instructions for Google, Apple, Outlook.