List the schedule entries for a schedule over a window of time.
Use this endpoint to find out who is on-call for a schedule, either right now or at any point in the future. Common uses include:
The response groups entries into three lists: scheduled (the entries the
rotation rules produce, before any overrides), overrides (any one-off
overrides that apply in the window) and final (the effective schedule
after overrides have been merged in — this is normally the list you want).
Each entry includes the rotation_id and layer_id it belongs to.
Schedules can be made up of multiple rotations (for example, a primary and
a secondary rotation) and each rotation can have several layers, and we
return entries for every rotation and layer on the schedule.
The endpoint returns all entries that overlap with the given window. If no window is provided we default to a sensible range starting from now.
Responses are paginated. When more entries are available than fit on a single
page, the response includes a pagination_meta block with two fields:
after_url — a fully-formed URL for the next page. The simplest way
to paginate is to keep following this URL until it is no longer present.after — an opaque cursor token. To fetch the next page manually,
re-issue the request with entry_window_start set to this value and
entry_window_end left unchanged from the original request. Treat
the token as opaque — do not parse or modify it.Keep paginating until pagination_meta is absent from the response, at
which point you have received every entry in the window.
Documentation Index
Fetch the complete documentation index at: https://docs.incident.io/llms.txt
Use this file to discover all available pages before exploring further.
API key from your incident.io dashboard (Settings → API keys)
The ID of the schedule to get entries for.
"01FDAG4SAP5TYPT98WGR2N7W91"
The start of the window to get entries for. May also carry an opaque pagination cursor previously returned in pagination_meta.after — pass it back here unchanged to fetch the next page (leave entry_window_end unchanged from the original request).
"2021-01-01T00:00:00Z"
The end of the window to get entries for.
"2021-01-01T00:00:00Z"
OK response.
The schedule entries for a window of time, grouped by where they come from.
scheduled are the entries produced by the schedule's rotation rules before
any overrides are taken into account. overrides are the one-off changes that
apply within the window. final is the effective schedule after overrides
have been merged in — this is normally the list to use when working out who
is on-call.
{
"final": [
{
"end_at": "2021-08-17T13:28:57.801578Z",
"entry_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"fingerprint": "01G0J1EXE7AXZ2C93K61WBPYEH",
"layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH",
"rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"start_at": "2021-08-17T13:28:57.801578Z",
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
}
],
"overrides": [
{
"end_at": "2021-08-17T13:28:57.801578Z",
"entry_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"fingerprint": "01G0J1EXE7AXZ2C93K61WBPYEH",
"layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH",
"rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"start_at": "2021-08-17T13:28:57.801578Z",
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
}
],
"scheduled": [
{
"end_at": "2021-08-17T13:28:57.801578Z",
"entry_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"fingerprint": "01G0J1EXE7AXZ2C93K61WBPYEH",
"layer_id": "01G0J1EXE7AXZ2C93K61WBPYNH",
"rotation_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"start_at": "2021-08-17T13:28:57.801578Z",
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
}
]
}{ "after": "abc123", "after_url": "abc123" }