Get a schedule's shift boundaries
jsm_get_schedule_timelineGet on-call shift periods for a JSM schedule, showing who covers each shift and exact start/end times. Use it to answer when shifts start, end, or change hands.
Instructions
Return the on-call rotation periods for a JSM schedule — who covers each shift, and exactly when each shift starts and ends.
This is the tool for any question about shift boundaries rather than a single moment: "when does the current shift end?", "when is the handover?", "who covers the weekend?", "show me next week's rota". Answering those by calling jsm_get_on_call at guessed timestamps takes many calls and still cannot find a boundary exactly; this takes one.
Responders are resolved to names, so periods come back with people rather than bare account ids.
Args:
schedule_id (string): schedule id, or name if schedule_identifier_type='name'
schedule_identifier_type ('id' | 'name'): default 'id'
date (string, optional): ISO 8601 instant the window should cover; defaults to now
response_format ('markdown' | 'json'): default 'markdown'
Returns (json format): { "shifts": [ { "start": string, // ISO 8601 "end": string, // ISO 8601 "rotation_name": string, "type": "base" | "override" | "forwarding" | "historical", "responders": [ { "id": string, "displayName": string, "emailAddress": string } ] } ] }
The window spans roughly three weeks around the requested date, so both the shift in progress and the ones on either side of it are included.
Examples:
"When does the current on-call shift end?" -> schedule_id=
"Who has the rota next week?" -> date=
"When did the handover happen on Tuesday?" -> date="2026-08-25T00:00:00Z"
Error handling:
Periods of type 'historical' are in the past; 'override' means someone swapped in.
HTTP 401 here while alert tools work means the token is missing read:ops-config:jira-service-management — the same scope the other on-call tools need.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO 8601 instant the returned window should cover, e.g. '2026-08-27T12:00:00Z'. Defaults to now. | |
| schedule_id | Yes | Schedule id, or the schedule name when schedule_identifier_type='name'. | |
| response_format | No | Output format. 'markdown' is compact and human-readable (default); 'json' returns every field for programmatic use. | markdown |
| schedule_identifier_type | No | Whether schedule_id holds an id or a schedule name. A name costs one extra lookup, because every schedule endpoint takes an id. | id |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| shifts | Yes |