From pagerduty
Manages PagerDuty on-call schedules, escalation policies, and team members. View who is on-call, create overrides, and configure rotation layers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pagerduty:oncallWhen to use
When working with call management - viewing who is currently on-call, managing schedules and rotation layers, configuring escalation policies, creating temporary overrides. Use when: pagerduty oncall, pagerduty on-call, pagerduty schedule, pagerduty rotation, pagerduty escalation, pagerduty escalation policy, pagerduty override, pagerduty who is on call, pagerduty shift, pagerduty team member, pagerduty responder, or pagerduty page.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
PagerDuty's on-call system manages who receives pages for each service. Schedules define rotation layers (who is on-call when), and escalation policies define what happens if a page isn't acknowledged (Tier 1 → Tier 2 → Tier 3). For MSPs, PagerDuty on-call management typically covers internal SRE/IT rotations and can be configured per-customer if using multi-account setups.
PagerDuty's on-call system manages who receives pages for each service. Schedules define rotation layers (who is on-call when), and escalation policies define what happens if a page isn't acknowledged (Tier 1 → Tier 2 → Tier 3). For MSPs, PagerDuty on-call management typically covers internal SRE/IT rotations and can be configured per-customer if using multi-account setups.
| Tool | Description | Key Parameters |
|---|---|---|
list_oncalls | Who is currently on-call for each schedule | schedule_ids[], user_ids[], escalation_policy_ids[], since, until |
list_schedules | List all on-call schedules | query (name search), team_ids[] |
get_schedule | Get schedule with rotation layers and current on-call | id, since, until |
create_schedule | Create a new on-call schedule | name, time_zone, schedule_layers[] |
update_schedule | Update schedule details or layers | id |
delete_schedule | Delete a schedule | id |
list_schedule_overrides | List temporary overrides | id, since, until |
| Tool | Description | Key Parameters |
|---|---|---|
list_escalation_policies | List all escalation policies | query, team_ids[] |
get_escalation_policy | Get policy details and rules | id |
| Tool | Description |
|---|---|
list_teams | List all teams |
list_team_members | List members of a team |
add_team_member | Add a user to a team |
A PagerDuty schedule is composed of:
Tier 1: Primary on-call responder (5 min to ack)
↓ (if not acknowledged)
Tier 2: Secondary responder or team lead (10 min to ack)
↓ (if not acknowledged)
Tier 3: Engineering manager
↓ (if not acknowledged)
Tier 4: Repeat (or broadcast to whole team)
Each tier targets either a schedule (on-call rotation) or specific users. The escalation timeout is configurable per tier.
| Field | Description |
|---|---|
start | When this layer starts |
rotation_type | daily / weekly / custom |
rotation_turn_length_seconds | How long each person is on-call |
users[] | Ordered list of responders in rotation |
restrictions[] | Active time windows for this layer |
list_oncalls with no filters to see all current on-call entriesschedule_ids[] or escalation_policy_ids[] to narrow to a specific service teamuser (who is on-call), schedule, and escalation_policy for each entrystart and end timestamps show when their shift endsget_schedule with id and since (now) / until (next 2 weeks)final_schedule.rendered_schedule_entries — the computed on-call assignmentsWhen someone is unavailable during their shift:
list_schedulesupdate_schedule or use the PagerDuty API directly:
user: the covering responderstart / end: the override periodlist_schedule_overrides on the schedule IDBefore handing off to the incoming on-call:
list_oncalls to confirm the current and incoming responderslist_incidents with statuses[]=triggered&statuses[]=acknowledged to find open incidentslist_incident_notes to capture the current investigation statelist_escalation_policies to find the policy for the affected serviceget_escalation_policy with the IDWhen a rotation has a coverage gap (no one assigned):
list_schedule_overrides to see existing overrides during the gapget_schedule for the gap period| Field | Description |
|---|---|
escalation_policy.id | The escalation policy this on-call is part of |
schedule.id | The schedule driving this on-call entry |
user.id / user.name | The on-call responder |
start | When this person's on-call period started |
end | When their on-call period ends |
escalation_level | Which tier (1 = primary, 2 = secondary) |
| Error | Cause | Resolution |
|---|---|---|
| Schedule not found | Invalid schedule ID | List schedules with list_schedules to find valid IDs |
| User not in account | Invalid user ID for override | List users with list_users |
| Override conflict | Overlapping override exists | Check with list_schedule_overrides first |
| 401 Unauthorized | Wrong auth format | Use Token token=<key> not Bearer |
list_oncalls to confirm the right person is on-callsince/until on list_oncalls — To see future on-call assignments, not just currentnpx claudepluginhub wyre-technology/msp-claude-plugins --plugin pagerdutyAutomates PagerDuty operations: manage incidents, services, schedules, escalation policies, and on-call rotations using Rube MCP (Composio).
Manages Better Stack on-call schedules, escalation/notification policies, rotations, and incident response. Shows who is currently on-call and pages responders.
Automates PagerDuty incident management, alerts, and analytics via Rube MCP/Composio. Useful for creating, acknowledging, resolving incidents and managing on-call rotations.