atmon docs

REFERENCE/TOOLKITS/PAGERDUTY.MD

PagerDuty

On-call and incidents. Open, triage, and resolve incidents, add notes, manage escalation policies, and see who is on call.

PropertyValue
Slugpagerduty
Definition version0.1.0
Base URLhttps://api.pagerduty.com
Auth schemesapi_key
Action tools35
By class14 read, 15 write, 6 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

48 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 35 cases written by hand and 13 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-135/4872.9%
top-846/4895.8%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

api_key

PropertyValue
Placementheader
NameAuthorization
Rendered asToken token={key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

35 action tools. The catalog-wide slug is pagerduty.<tool>, which is what search_tools returns and call_tool takes.

pagerduty.list_incidents

List PagerDuty incidents, optionally filtered by status or service. Use when the user asks what's currently firing, what's on fire, or wants the whole incident queue rather than one known incident. For a single incident by id or number use get_incident.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /incidents.

Arguments:

ArgumentTypeRequiredNotes
service_idstringnoRestrict to one service's incidents, from list_services. Omit for every service.
sincestringnoOnly incidents created at or after this ISO 8601 timestamp.
statusstring, one of triggered, acknowledged, resolvednoRestrict to incidents in one status. Omit for the open set (triggered and acknowledged).
untilstringnoOnly incidents created at or before this ISO 8601 timestamp.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentsarray of object
incidents[].created_atstring
incidents[].html_urlstring
incidents[].idstring
incidents[].incident_numberinteger
incidents[].serviceobject
incidents[].service.idstring
incidents[].service.summarystring
incidents[].statusstring
incidents[].titlestring
incidents[].urgencystring

Also retrieved by: "what's on fire right now", "show me everything currently paging", "what's in the incident queue", "browse every open incident", "what's actively firing across our services".

pagerduty.get_incident

Get one PagerDuty incident's full detail by id or incident number: title, status, urgency, priority, service, escalation policy, and current assignments. Use when the user names a specific incident. For the whole queue use list_incidents.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /incidents/{{params.incident_id}}.

Arguments:

ArgumentTypeRequiredNotes
incident_idstringyesPagerDuty incident id or incident number, e.g. "PT4KHLK" or "1234", from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.assignmentsarray of object
incident.assignments[].assigneeobject
incident.created_atstring
incident.escalation_policyobject
incident.escalation_policy.idstring
incident.escalation_policy.summarystring
incident.html_urlstring
incident.idstring
incident.incident_numberinteger
incident.priorityobject
incident.priority.idstring
incident.priority.summarystring
incident.serviceobject
incident.service.idstring
incident.service.summarystring
incident.statusstring
incident.titlestring
incident.urgencystring

Also retrieved by: "pull up the details on this page", "what's going on with this incident", "check the status of this page", "show me what triggered this alert".

pagerduty.create_incident

Open a new PagerDuty incident on a service. Use when the user wants to trigger, page, or manually declare an incident rather than wait for a monitoring alert to fire one. Requires the triggering user's email and the service to open it on; urgency, priority, and escalation policy are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /incidents.

Arguments:

ArgumentTypeRequiredNotes
escalation_policyobjectnoEscalation policy reference object, e.g. {"id": "PXXXXXX"}, from list_escalation_policies. Omit to use the service's default policy.
escalation_policy.idstringno
from_emailstringyesEmail of the PagerDuty user this incident is opened as. Sent as the required From header.
priorityobjectnoPriority reference object, e.g. {"id": "PXXXXXX"}. Omit for no priority.
priority.idstringno
service_idstringyesService id to open the incident on, from list_services.
titlestringyesIncident title.
urgencystring, one of high, lownoIncident urgency. Omit for the service's default.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.created_atstring
incident.html_urlstring
incident.idstring
incident.incident_numberinteger
incident.serviceobject
incident.service.idstring
incident.service.summarystring
incident.statusstring
incident.titlestring
incident.urgencystring

Also retrieved by: "page the on-call team about this", "declare an incident for this outage", "manually trigger a page for this problem", "open an incident because something's down", "kick off an incident for this issue".

pagerduty.update_incident

Edit a PagerDuty incident's own fields: title, urgency, priority, or escalation policy. Use when the user wants to retitle, reprioritize, or re-escalate an incident. For its status use acknowledge_incident or resolve_incident; for who owns it use assign_incident.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /incidents/{{params.incident_id}}.

Arguments:

ArgumentTypeRequiredNotes
escalation_policyobjectnoNew escalation policy reference object, e.g. {"id": "PXXXXXX"}. Omit to leave unchanged.
escalation_policy.idstringno
from_emailstringyesEmail of the PagerDuty user making this change. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.
priorityobjectnoNew priority reference object, e.g. {"id": "PXXXXXX"}. Omit to leave unchanged.
priority.idstringno
titlestringnoNew title.
urgencystring, one of high, lownoNew urgency.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.escalation_policyobject
incident.escalation_policy.idstring
incident.escalation_policy.summarystring
incident.idstring
incident.priorityobject
incident.priority.idstring
incident.priority.summarystring
incident.titlestring
incident.urgencystring

Also retrieved by: "bump the severity on this incident", "retitle this page", "change which team this incident escalates through", "reprioritize this outage".

pagerduty.resolve_incident

Resolve a PagerDuty incident, marking it fixed and stopping its escalation. Use when the user wants to resolve, close, or mark an incident done. Irreversible: a resolved incident does not reopen; a new incident is created instead if the problem recurs.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PUT /incidents/{{params.incident_id}}.

Arguments:

ArgumentTypeRequiredNotes
from_emailstringyesEmail of the PagerDuty user resolving this incident. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.idstring
incident.statusstring

Also retrieved by: "mark this incident as fixed", "close out this page, it's handled", "stop the paging, this is resolved", "this outage is over, wrap it up".

pagerduty.acknowledge_incident

Acknowledge a PagerDuty incident, marking that someone is actively working it and pausing further escalation. Use when the user wants to ack, claim, or confirm they're looking at an incident. To mark it fully fixed use resolve_incident instead.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /incidents/{{params.incident_id}}.

Arguments:

ArgumentTypeRequiredNotes
from_emailstringyesEmail of the PagerDuty user acknowledging this incident. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.idstring
incident.statusstring

Also retrieved by: "claim this page, I'm on it", "let the team know I'm looking into this", "ack this alert so it stops escalating", "confirm I've seen this incident".

pagerduty.assign_incident

Reassign a PagerDuty incident to a different responder. Use when the user wants to hand off, reassign, or transfer ownership of an incident to someone else. For the incident's own fields use update_incident.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /incidents/{{params.incident_id}}.

Arguments:

ArgumentTypeRequiredNotes
assignee_idstringyesUser id to assign the incident to, from list_users.
from_emailstringyesEmail of the PagerDuty user making this reassignment. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.assignmentsarray of object
incident.assignments[].assigneeobject
incident.idstring

Also retrieved by: "hand this page off to someone else", "reassign this incident to another responder", "put this outage on someone else's plate", "transfer ownership of this page".

pagerduty.snooze_incident

Snooze a PagerDuty incident's escalation for a set duration without resolving it. Use when the user wants to postpone, silence, or delay further paging on an incident they're already aware of. The incident stays open and re-escalates once the snooze ends.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /incidents/{{params.incident_id}}/snooze.

Arguments:

ArgumentTypeRequiredNotes
duration_secondsintegeryesHow long to snooze escalation for, in seconds, e.g. 3600 for one hour.
from_emailstringyesEmail of the PagerDuty user snoozing this incident. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.idstring
incident.statusstring

Also retrieved by: "silence this page for an hour", "hold off on escalating this for now", "delay the next page on this incident", "mute this alert for a bit, I'm aware".

pagerduty.merge_incidents

Merge one or more PagerDuty incidents into a target incident. Use when the user wants to merge, combine, or fold duplicate incidents (often from the same underlying alert) into one. Irreversible: the merged-away incidents' own identity is gone.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls POST /incidents/{{params.incident_id}}/merge.

Arguments:

ArgumentTypeRequiredNotes
from_emailstringyesEmail of the PagerDuty user performing this merge. Sent as the required From header.
incident_idstringyesTarget incident id that survives the merge, from list_incidents.
source_incidentsarray of objectyesIncident reference objects to merge into the target, e.g. [{"id": "PT4KHLK", "type": "incident_reference"}]. Ids from list_incidents.
source_incidents[].idstringno
source_incidents[].typestringno

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
incidentobject
incident.idstring
incident.incident_numberinteger
incident.statusstring

Also retrieved by: "combine these duplicate pages into one", "fold these two alerts into a single incident", "these are the same outage, merge them".

pagerduty.list_incident_notes

List the notes left on a PagerDuty incident, in order. Use when the user wants to read an incident's timeline of updates or investigation notes. To add a new one use add_incident_note.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /incidents/{{params.incident_id}}/notes.

Arguments:

ArgumentTypeRequiredNotes
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
notesarray of object
notes[].contentstring
notes[].created_atstring
notes[].idstring
notes[].userobject
notes[].user.idstring
notes[].user.summarystring

Also retrieved by: "what updates have people left on this incident", "read the investigation notes on this page", "show me the timeline of comments on this outage".

pagerduty.add_incident_note

Post a new note on a PagerDuty incident, e.g. an update on root cause or remediation. Use when the user wants to note, log, or comment on an incident's investigation. For the incident's own fields use update_incident.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /incidents/{{params.incident_id}}/notes.

Arguments:

ArgumentTypeRequiredNotes
contentstringyesNote text.
from_emailstringyesEmail of the PagerDuty user leaving this note. Sent as the required From header.
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
noteobject
note.contentstring
note.created_atstring
note.idstring

Also retrieved by: "log what we found on this incident", "leave an update on the root cause", "note the remediation steps taken so far", "write down what's happening on this page".

pagerduty.list_incident_alerts

List the individual alerts that triggered or attached to a PagerDuty incident. Use when the user wants to see what raw monitoring signals or events rolled up into an incident, not the incident's own summary.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /incidents/{{params.incident_id}}/alerts.

Arguments:

ArgumentTypeRequiredNotes
incident_idstringyesPagerDuty incident id or incident number, from list_incidents.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
alertsarray of object
alerts[].created_atstring
alerts[].idstring
alerts[].severitystring
alerts[].statusstring
alerts[].summarystring

Also retrieved by: "what raw alerts rolled into this incident", "show me the monitoring events behind this page", "which signals fired that caused this outage".

pagerduty.list_escalation_policies

List the escalation policies configured in PagerDuty. Use when the user asks what escalation paths or on-call chains exist, or wants a policy's id for a service or another tool.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /escalation_policies.

Arguments:

ArgumentTypeRequiredNotes
querystringnoFilter by name substring. Omit to list every policy.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
escalation_policiesarray of object
escalation_policies[].descriptionstring
escalation_policies[].idstring
escalation_policies[].namestring
escalation_policies[].num_loopsinteger

Also retrieved by: "what escalation chains do we have set up", "show me the on-call paths configured", "browse every escalation policy".

pagerduty.get_escalation_policy

Get one PagerDuty escalation policy's detail by id: its name and its rungs of targets and delays. Use when the user names a specific escalation policy. For the whole list use list_escalation_policies.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /escalation_policies/{{params.escalation_policy_id}}.

Arguments:

ArgumentTypeRequiredNotes
escalation_policy_idstringyesEscalation policy id, from list_escalation_policies.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
escalation_policyobject
escalation_policy.descriptionstring
escalation_policy.escalation_rulesarray of object
escalation_policy.escalation_rules[].escalation_delay_in_minutesinteger
escalation_policy.escalation_rules[].idstring
escalation_policy.escalation_rules[].targetsarray of object
escalation_policy.idstring
escalation_policy.namestring
escalation_policy.num_loopsinteger

Also retrieved by: "who gets paged first on this escalation path", "show me the rungs on this on-call chain", "what's the delay between steps on this policy".

pagerduty.create_escalation_policy

Create a new PagerDuty escalation policy: an ordered chain of users or schedules to page, with a delay between each rung. Use when the user wants to set up a new escalation path or on-call chain.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /escalation_policies.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoOptional free-text description.
escalation_rulesarray of objectyesOrdered rungs, e.g. [{"escalation_delay_in_minutes": 10, "targets": [{"id": "PXXXXXX", "type": "user_reference"}]}]. Target type is "user_reference" or "schedule_reference".
escalation_rules[].escalation_delay_in_minutesintegerno
escalation_rules[].targetsarray of objectno
escalation_rules[].targets[].idstringno
escalation_rules[].targets[].typestringno
namestringyesEscalation policy name.
num_loopsintegernoHow many times to repeat the whole chain before giving up. Omit for PagerDuty's default.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
escalation_policyobject
escalation_policy.idstring
escalation_policy.namestring
escalation_policy.num_loopsinteger

Also retrieved by: "set up a new paging chain", "build an on-call escalation path", "configure who gets paged and in what order".

pagerduty.update_escalation_policy

Edit a PagerDuty escalation policy's name, description, or rungs of targets and delays. Use when the user wants to change who gets paged, in what order, or how quickly an escalation moves on.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /escalation_policies/{{params.escalation_policy_id}}.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoNew free-text description.
escalation_policy_idstringyesEscalation policy id to edit, from list_escalation_policies.
escalation_rulesarray of objectnoReplacement ordered rungs, same shape as create_escalation_policy. Omit to leave the rungs unchanged.
escalation_rules[].escalation_delay_in_minutesintegerno
escalation_rules[].targetsarray of objectno
escalation_rules[].targets[].idstringno
escalation_rules[].targets[].typestringno
namestringnoNew name.
num_loopsintegernoNew loop count. Omit to leave unchanged.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
escalation_policyobject
escalation_policy.idstring
escalation_policy.namestring
escalation_policy.num_loopsinteger

Also retrieved by: "change who gets paged first on this chain", "reorder the rungs on this escalation path", "adjust the delay before the next person gets paged".

pagerduty.delete_escalation_policy

Permanently delete a PagerDuty escalation policy. Use when the user wants to delete or remove an escalation path for good. Irreversible; fails if a service still depends on the policy.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /escalation_policies/{{params.escalation_policy_id}}.

Arguments:

ArgumentTypeRequiredNotes
escalation_policy_idstringyesEscalation policy id to delete, from list_escalation_policies.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this paging chain for good", "get rid of this escalation path entirely", "wipe out this on-call chain permanently".

pagerduty.list_schedules

List the on-call schedules configured in PagerDuty. Use when the user asks what rotations or schedules exist, or wants a schedule's id for another tool. For who is on call right now use list_oncalls.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /schedules.

Arguments:

ArgumentTypeRequiredNotes
querystringnoFilter by name substring. Omit to list every schedule.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
schedulesarray of object
schedules[].idstring
schedules[].namestring
schedules[].time_zonestring

Also retrieved by: "what on-call rotations exist", "show me every schedule we have set up", "browse the on-call calendars".

pagerduty.get_schedule

Get one PagerDuty on-call schedule's detail by id: its name, time zone, and rotation layers. Use when the user names a specific schedule or rotation. For the whole list use list_schedules.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /schedules/{{params.schedule_id}}.

Arguments:

ArgumentTypeRequiredNotes
schedule_idstringyesSchedule id, from list_schedules.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
scheduleobject
schedule.descriptionstring
schedule.html_urlstring
schedule.idstring
schedule.namestring
schedule.schedule_layersarray of object
schedule.schedule_layers[].idstring
schedule.schedule_layers[].namestring
schedule.schedule_layers[].rotation_turn_length_secondsinteger
schedule.schedule_layers[].startstring
schedule.time_zonestring

Also retrieved by: "show me this rotation's layers", "what time zone does this on-call calendar run in", "pull up the details on this rotation".

pagerduty.create_schedule

Create a new PagerDuty on-call schedule: a rotation of users across one or more layers in a time zone. Use when the user wants to set up a new on-call rotation. For a one-off shift swap on an existing schedule use create_schedule_override instead.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /schedules.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoOptional free-text description.
namestringyesSchedule name.
schedule_layersarray of objectyesRotation layers, e.g. [{"name": "Primary", "start": "2026-08-01T00:00:00-04:00", "rotation_virtual_start": "2026-08-01T00:00:00-04:00", "rotation_turn_length_seconds": 604800, "users": [{"user": {"id": "PXXXXXX", "type": "user_reference"}}]}]. User ids from list_users.
schedule_layers[].namestringno
schedule_layers[].rotation_turn_length_secondsintegerno
schedule_layers[].rotation_virtual_startstringno
schedule_layers[].startstringno
schedule_layers[].usersarray of objectno
schedule_layers[].users[].userobjectno
time_zonestringyesIANA time zone the schedule runs in, e.g. "America/New_York".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
scheduleobject
schedule.idstring
schedule.namestring
schedule.time_zonestring

Also retrieved by: "set up a new on-call rotation", "build a weekly paging schedule", "configure a rotation across the team".

pagerduty.update_schedule

Edit a PagerDuty on-call schedule's name, time zone, or rotation layers. Use when the user wants to change how an existing rotation is built, not swap one shift; for a one-off swap use create_schedule_override.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /schedules/{{params.schedule_id}}.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoNew free-text description.
namestringnoNew name.
schedule_idstringyesSchedule id to edit, from list_schedules.
schedule_layersarray of objectnoReplacement rotation layers, same shape as create_schedule. Omit to leave the layers unchanged.
schedule_layers[].namestringno
schedule_layers[].rotation_turn_length_secondsintegerno
schedule_layers[].rotation_virtual_startstringno
schedule_layers[].startstringno
schedule_layers[].usersarray of objectno
schedule_layers[].users[].userobjectno
time_zonestringnoNew IANA time zone, e.g. "America/New_York".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
scheduleobject
schedule.idstring
schedule.namestring
schedule.time_zonestring

Also retrieved by: "change the time zone on this rotation", "edit the layers on this on-call calendar", "adjust who's in this rotation".

pagerduty.delete_schedule

Permanently delete a PagerDuty on-call schedule. Use when the user wants to delete or remove a rotation for good. Irreversible; fails if an escalation policy still depends on the schedule.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /schedules/{{params.schedule_id}}.

Arguments:

ArgumentTypeRequiredNotes
schedule_idstringyesSchedule id to delete, from list_schedules.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this on-call rotation for good", "get rid of this schedule entirely", "wipe out this rotation permanently".

pagerduty.list_schedule_overrides

List the temporary overrides on a PagerDuty schedule within a date range: one-off swaps to the normal rotation. Use when the user asks who is covering a schedule on a specific day outside the regular rotation.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /schedules/{{params.schedule_id}}/overrides.

Arguments:

ArgumentTypeRequiredNotes
schedule_idstringyesSchedule id, from list_schedules.
sincestringyesStart of the date range, ISO 8601 timestamp.
untilstringyesEnd of the date range, ISO 8601 timestamp.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
overridesarray of object
overrides[].endstring
overrides[].idstring
overrides[].startstring
overrides[].userobject
overrides[].user.idstring
overrides[].user.summarystring

Also retrieved by: "who's covering this weekend outside the normal rotation", "show me the shift swaps on this schedule", "what one-off changes are on this calendar this week".

pagerduty.create_schedule_override

Add a temporary override to a PagerDuty schedule, swapping in a different user for a set time window. Use when the user wants to cover, swap, or fill in for someone's on-call shift without changing the underlying rotation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /schedules/{{params.schedule_id}}/overrides.

Arguments:

ArgumentTypeRequiredNotes
endstringyesOverride end, ISO 8601 timestamp.
schedule_idstringyesSchedule id to override, from list_schedules.
startstringyesOverride start, ISO 8601 timestamp.
user_idstringyesUser id to cover the override, from list_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
overrideobject
override.endstring
override.idstring
override.startstring
override.userobject
override.user.idstring
override.user.summarystring

Also retrieved by: "swap someone in for tomorrow's on-call shift", "cover this rotation while someone's out", "put a substitute on call for the weekend".

pagerduty.list_oncalls

List who is on call right now across PagerDuty schedules and escalation policies. Use when the user asks who's on call, who's covering, or who will get paged next. For a rotation's own setup use list_schedules or list_escalation_policies.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /oncalls.

Arguments:

ArgumentTypeRequiredNotes
escalation_policy_idstringnoRestrict to one escalation policy's on-call chain. Omit for every policy.
schedule_idstringnoRestrict to one schedule. Omit for every schedule.
sincestringnoStart of the time window to check, ISO 8601 timestamp. Omit for right now.
untilstringnoEnd of the time window to check, ISO 8601 timestamp. Omit for right now.
user_idstringnoRestrict to one user's on-call shifts. Omit for every user.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
oncallsarray of object
oncalls[].endstring
oncalls[].escalation_levelinteger
oncalls[].escalation_policyobject
oncalls[].escalation_policy.idstring
oncalls[].escalation_policy.summarystring
oncalls[].scheduleobject
oncalls[].schedule.idstring
oncalls[].schedule.summarystring
oncalls[].startstring
oncalls[].userobject
oncalls[].user.idstring
oncalls[].user.summarystring

Also retrieved by: "who's on call right now", "who's going to get paged next", "who's covering tonight", "check who's currently responsible for pages".

pagerduty.list_services

List the services configured in PagerDuty, each representing a monitored system that can open incidents. Use when the user asks what services exist, or wants a service's id for create_incident or another tool.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services.

Arguments:

ArgumentTypeRequiredNotes
querystringnoFilter by name substring. Omit to list every service.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
servicesarray of object
services[].escalation_policyobject
services[].escalation_policy.idstring
services[].escalation_policy.summarystring
services[].idstring
services[].namestring
services[].statusstring

Also retrieved by: "what monitored systems do we have set up", "show me every service that can open a page", "browse the list of integrations".

pagerduty.get_service

Get one PagerDuty service's detail by id: its name, status, and escalation policy. Use when the user names a specific service or system. For the whole list use list_services.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /services/{{params.service_id}}.

Arguments:

ArgumentTypeRequiredNotes
service_idstringyesService id, from list_services.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
serviceobject
service.descriptionstring
service.escalation_policyobject
service.escalation_policy.idstring
service.escalation_policy.summarystring
service.html_urlstring
service.idstring
service.namestring
service.statusstring

Also retrieved by: "which escalation path does this service follow", "show me the details on this monitored system", "check the status of this service's setup".

pagerduty.create_service

Create a new PagerDuty service: a monitored system that opens incidents against an escalation policy. Use when the user wants to add, register, or set up a new service or integration target.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /services.

Arguments:

ArgumentTypeRequiredNotes
alert_creationstring, one of create_alerts_and_incidents, create_incidentsnoWhether alerts open incidents (default) or are grouped as alerts on existing ones.
descriptionstringnoOptional free-text description.
escalation_policy_idstringyesEscalation policy id this service's incidents follow, from list_escalation_policies.
namestringyesService name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
serviceobject
service.idstring
service.namestring
service.statusstring

Also retrieved by: "set up a new system to page on", "register a new integration target", "add a service that opens incidents".

pagerduty.update_service

Edit a PagerDuty service's name, description, or escalation policy. Use when the user wants to rename a service or change which escalation path its incidents follow.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /services/{{params.service_id}}.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoNew free-text description.
escalation_policyobjectnoNew escalation policy reference object, e.g. {"id": "PXXXXXX"}. Omit to leave unchanged.
escalation_policy.idstringno
namestringnoNew name.
service_idstringyesService id to edit, from list_services.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
serviceobject
service.escalation_policyobject
service.escalation_policy.idstring
service.escalation_policy.summarystring
service.idstring
service.namestring

Also retrieved by: "rename this monitored system", "change which escalation chain this service uses", "edit this integration's description".

pagerduty.delete_service

Permanently delete a PagerDuty service. Use when the user wants to delete or remove a service for good. Irreversible; its incident history goes with it.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /services/{{params.service_id}}.

Arguments:

ArgumentTypeRequiredNotes
service_idstringyesService id to delete, from list_services.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this monitored system for good", "get rid of this integration entirely", "wipe out this service permanently".

pagerduty.list_users

List the users in a PagerDuty account. Use when the user asks who has an account, or wants a user's id for an escalation policy, schedule, or another tool. For one known person use get_user.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /users.

Arguments:

ArgumentTypeRequiredNotes
querystringnoFilter by name or email substring. Omit to list every user.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
usersarray of object
users[].emailstring
users[].idstring
users[].namestring
users[].rolestring

Also retrieved by: "who has an account in our pagerduty", "show me everyone on the team", "browse every person set up".

pagerduty.get_user

Get one PagerDuty user's profile by id: name, email, role, and time zone. Use when the user names a specific person. For the whole list use list_users.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /users/{{params.user_id}}.

Arguments:

ArgumentTypeRequiredNotes
user_idstringyesUser id, from list_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.emailstring
user.idstring
user.job_titlestring
user.namestring
user.rolestring
user.time_zonestring

Also retrieved by: "pull up someone's profile", "what's this person's role and time zone", "check someone's contact details".

pagerduty.create_user

Create a new PagerDuty user account. Use when the user wants to add, invite, or register a new person to the PagerDuty account. Requires a name and email.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /users.

Arguments:

ArgumentTypeRequiredNotes
emailstringyesEmail address.
job_titlestringnoOptional job title.
namestringyesFull name.
rolestring, one of admin, limited_user, observer, owner, read_only_user, read_only_limited_user, restricted_access, usernoPagerDuty role to grant. Omit for the account's default role.
time_zonestringnoIANA time zone, e.g. "America/New_York". Omit for the account default.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.emailstring
user.idstring
user.namestring
user.rolestring

Also retrieved by: "invite a new teammate", "add someone new to the account", "register a new person".

pagerduty.update_user

Edit a PagerDuty user's name, email, role, or time zone. Use when the user wants to edit or correct someone's own profile details.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /users/{{params.user_id}}.

Arguments:

ArgumentTypeRequiredNotes
emailstringnoNew email address.
job_titlestringnoNew job title.
namestringnoNew full name.
rolestring, one of admin, limited_user, observer, owner, read_only_user, read_only_limited_user, restricted_access, usernoNew PagerDuty role.
time_zonestringnoNew IANA time zone, e.g. "America/New_York".
user_idstringyesUser id to edit, from list_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.emailstring
user.idstring
user.namestring
user.rolestring

Also retrieved by: "fix someone's time zone", "change a teammate's role", "correct someone's email on file".

pagerduty.delete_user

Permanently delete a PagerDuty user account. Use when the user wants to remove or delete someone's account for good. Irreversible; fails if the user is still referenced by an escalation policy or schedule.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /users/{{params.user_id}}.

Arguments:

ArgumentTypeRequiredNotes
user_idstringyesUser id to delete, from list_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove someone's account for good", "take this person off the account entirely", "wipe out this teammate's profile permanently".