On-call schedules define who is responsible for responding to incidents during any given time window. A schedule contains one or more rotation layers, each with its own rotation type, handoff time, and list of participants. This guide walks you through creating a schedule, adding a rotation layer, and checking who is currently on call.Documentation Index
Fetch the complete documentation index at: https://docs.scaling.cloud/llms.txt
Use this file to discover all available pages before exploring further.
Create a schedule
Send a A successful response returns the new schedule:
POST request to /api/oncall/schedules with a name and IANA timezone identifier.Add a rotation layer
A rotation layer defines when the schedule is active and which participants rotate through it. Send a The response returns the created layer:Key fields to know:
Participants rotate in the order listed. The first user in
POST request to /api/oncall/schedules/{scheduleId}/layers, replacing {scheduleId} with the ID returned in the previous step.| Field | Description |
|---|---|
rotationType | One of daily, weekly, or custom |
rotationLengthDays | Number of days per rotation shift (minimum 1) |
handoffTime | Time of day the rotation switches, in HH:MM 24-hour format |
effectiveFrom | ISO 8601 datetime when this layer becomes active |
effectiveUntil | Optional ISO 8601 datetime when this layer expires; null means it runs indefinitely |
participantIds | Ordered list of user IDs who rotate through the layer |
participantIds is on call starting at effectiveFrom, then each subsequent user takes over after rotationLengthDays days at handoffTime.Check who is currently on call
Query the schedule to see which participant is currently on call. Send a The response returns the Schedule Owner (used as To check who would be on call at a specific point in time, add an If
GET request to /api/oncall/schedules/{scheduleId}/resolve.Incident.ownerId), the Paging Targets (full set the schedule would page), and a currentOncallView with per-layer detail:at query parameter with an ISO 8601 datetime:entries is empty, no layer is active at the requested time. Check that your layer’s effectiveFrom has passed and that effectiveUntil has not expired.