From pagerduty
Manages PagerDuty on-call: views current on-call users, lists/manages schedules and rotations, configures escalation policies, creates overrides, handles teams.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pagerdutyThis skill uses the workspace's default tool permissions.
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.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
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 current