> ## 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.

# See who's on call from your own tools

> Answer "who is on call?" in your own tools, scripts, and AI assistants, without anyone opening the dashboard.

Everyone on your team can see who's on call in the incident.io dashboard and mobile app. To show it somewhere else, like an internal portal, a chat bot, or a script, read it from the [API](#with-the-api), the [CLI](#with-the-cli), or an [AI assistant](#with-an-ai-assistant). For the places we already sync to, see [Keep other tools in sync](#keep-other-tools-in-sync).

Decide first which question you're asking:

* **Who gets paged for this service right now?** Use the escalation path's current responders. They follow the same rules as a real page, including working hours and levels, so this is the answer to "who do I call". See [What determines if you're on call?](/on-call/determining-on-call)
* **Who is on this schedule?** Use the schedule's shifts, for now or any window of time.

## With the API

Use an [API key](/admin/api-keys) with the **View on-call resources** permission.

### Who gets paged for an escalation path

[Escalation paths](/api-reference/escalation-paths-v2/list) include `current_responders`: the people who would be paged first if the path fired right now.

```bash theme={null}
curl --get 'https://api.incident.io/v2/escalation_paths/<ESCALATION_PATH_ID>' \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
```

### Who is on a schedule now, and next

[Schedules](/api-reference/schedules-v2/list) include `current_shifts`, the shifts happening now, and `next_shifts`, who takes over at the next changeover.

```bash theme={null}
curl --get 'https://api.incident.io/v2/schedules/<SCHEDULE_ID>' \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
```

### Who is on a schedule over a window of time

To build a calendar, look up who was on call when something happened, or export upcoming shifts, list the [schedule entries](/api-reference/schedule-entries-v2/list) for a window:

```bash theme={null}
curl --get 'https://api.incident.io/v2/schedule_entries' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --data 'schedule_id=<SCHEDULE_ID>' \
  --data 'entry_window_start=2026-10-01T00:00:00Z' \
  --data 'entry_window_end=2026-10-08T00:00:00Z'
```

Use the `schedule_entries.final` list in the response. It has overrides already applied, so it matches what responders see.

## With the CLI

The [`inc` CLI](/integrations/cli) answers the same questions from your terminal, which suits scripts and cron jobs. Use `--jq` to pick out just the names:

```bash theme={null}
# Who gets paged for an escalation path right now
inc escalations paths show <ESCALATION_PATH_ID> --jq '.current_responders | map(.name)'

# Who is on a schedule now, and next
inc schedules show <SCHEDULE_ID> --jq '{now: [.current_shifts[].user.name], next: [.next_shifts[].user.name]}'

# Who is on a schedule over a window of time
inc schedules entries <SCHEDULE_ID> --from 2026-10-01T00:00:00Z --until 2026-10-08T00:00:00Z
```

## With an AI assistant

Connect the [incident.io MCP server](/ai/remote-mcp) to Claude, Cursor, or any other assistant that supports MCP, and ask in plain language, like "Who's on call for the platform team right now?"

## Keep other tools in sync

For these, there's nothing to build:

* **Slack**: [sync a schedule to a Slack user group](/on-call/sync-slack-groups), so `@platform-oncall` always reaches whoever is on call.
* **Your calendar**: [subscribe to your shifts](/on-call/shift-calendar-feeds).
* **Incident roles**: [assign incident roles from a schedule](/on-call/schedule-to-incident-roles), so whoever is on call becomes the incident lead.
