> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# PagerDuty

**Authentication:** OAuth 2.0
**Categories:** Developer Tools
## What you can do

Connect this agent connector to let your agent:

- **List escalation policies, maintenance windows, schedules** — List escalation policies in PagerDuty
- **Create service, incident note, team** — Create a new service in PagerDuty
- **Delete user, schedule, escalation policy** — Delete a PagerDuty user
- **Update team, incident, maintenance window** — Update an existing PagerDuty team's name or description
- **Get service, maintenance window, escalation policy** — Get details of a specific PagerDuty service by its ID
- **Manage incident** — Manage multiple PagerDuty incidents in bulk

## Authentication

This connector uses **OAuth 2.0**. Scalekit acts as the OAuth client: it redirects your user to PagerDuty, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a `connectionName` and a user `identifier`.

You supply your PagerDuty **Connected App** credentials (Client ID + Secret) once per environment in the Scalekit dashboard.

Before calling this connector from your code, create the PagerDuty connection in **AgentKit** > **Connections** and copy the exact **Connection name** from that connection into your code. The value in code must match the dashboard exactly.

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `pagerduty_escalation_policies_list`

List escalation policies in PagerDuty. Supports filtering by query, user, team, and includes.

Parameters:

- `include` (`string`, optional): Additional resources to include. Options: services, teams, targets.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by name.
- `sort_by` (`string`, optional): Used to specify a field to sort the response on. Options: name, name:asc, name:desc.
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter escalation policies by.
- `user_ids` (`string`, optional): Comma-separated list of user IDs to filter escalation policies for.

### `pagerduty_escalation_policy_create`

Create a new escalation policy in PagerDuty. Escalation policies define who gets notified and in what order when an incident is triggered.

Parameters:

- `name` (`string`, required): The name of the escalation policy.
- `target_id` (`string`, required): The ID of the user or schedule to notify in the first escalation rule.
- `description` (`string`, optional): A description of the escalation policy.
- `num_loops` (`integer`, optional): The number of times the escalation policy will repeat after reaching the end of its escalation rules.
- `on_call_handoff_notifications` (`string`, optional): Determines how on call handoff notifications will be sent for users on the escalation policy. Options: if_has_services, always.
- `rule_escalation_delay_in_minutes` (`integer`, optional): The number of minutes before an unacknowledged incident escalates to the next rule.
- `target_type` (`string`, optional): The type of the first escalation rule target. Options: user_reference, schedule_reference.

### `pagerduty_escalation_policy_delete`

Delete a PagerDuty escalation policy. The policy must not be in use by any services or schedules.

Parameters:

- `id` (`string`, required): The ID of the escalation policy to delete.

### `pagerduty_escalation_policy_get`

Get details of a specific PagerDuty escalation policy by its ID.

Parameters:

- `id` (`string`, required): The ID of the escalation policy to retrieve.
- `include` (`string`, optional): Additional resources to include. Options: services, teams, targets.

### `pagerduty_escalation_policy_update`

Update an existing PagerDuty escalation policy's name, description, or loop settings.

Parameters:

- `id` (`string`, required): The ID of the escalation policy to update.
- `description` (`string`, optional): Updated description of the escalation policy.
- `name` (`string`, optional): The updated name of the escalation policy.
- `num_loops` (`integer`, optional): The number of times the escalation policy will repeat after reaching the end.
- `on_call_handoff_notifications` (`string`, optional): Determines how on-call handoff notifications are sent. Options: if_has_services, always.

### `pagerduty_incident_create`

Create a new incident in PagerDuty. Requires a title, service ID, and the email of the user creating the incident.

Parameters:

- `from_email` (`string`, required): The email address of the user creating the incident. Required by PagerDuty.
- `service_id` (`string`, required): The ID of the service the incident belongs to.
- `title` (`string`, required): A brief description of the incident.
- `body_details` (`string`, optional): Additional details about the incident body (plain text).
- `escalation_policy_id` (`string`, optional): The ID of the escalation policy to assign to the incident.
- `incident_key` (`string`, optional): A string that identifies the incident. Used for deduplication.
- `priority_id` (`string`, optional): The ID of the priority to assign to the incident.
- `urgency` (`string`, optional): The urgency of the incident. Options: high, low.

### `pagerduty_incident_get`

Get details of a specific PagerDuty incident by its ID, including status, assignments, services, and timeline.

Parameters:

- `id` (`string`, required): The ID of the incident to retrieve.

### `pagerduty_incident_manage`

Manage multiple PagerDuty incidents in bulk. Acknowledge, resolve, merge, or reassign multiple incidents at once.

Parameters:

- `from_email` (`string`, required): The email address of the user performing the bulk action. Required by PagerDuty.
- `incident_ids` (`string`, required): Comma-separated list of incident IDs to manage.
- `status` (`string`, required): The status to apply to all specified incidents. Options: acknowledged, resolved.

### `pagerduty_incident_note_create`

Add a note to a PagerDuty incident. Notes are visible to all responders on the incident.

Parameters:

- `content` (`string`, required): The content of the note to add to the incident.
- `from_email` (`string`, required): The email address of the user creating the note. Required by PagerDuty.
- `id` (`string`, required): The ID of the incident to add a note to.

### `pagerduty_incident_update`

Update an existing PagerDuty incident. Can change status, urgency, title, priority, escalation policy, or reassign it.

Parameters:

- `from_email` (`string`, required): The email address of the user making the update. Required by PagerDuty.
- `id` (`string`, required): The ID of the incident to update.
- `assignee_id` (`string`, optional): The ID of the user to assign the incident to.
- `escalation_policy_id` (`string`, optional): The ID of the escalation policy to assign to the incident.
- `priority_id` (`string`, optional): The ID of the priority to assign to the incident.
- `resolution` (`string`, optional): The resolution note for the incident (used when resolving).
- `status` (`string`, optional): The new status of the incident. Options: acknowledged, resolved.
- `title` (`string`, optional): A brief description of the incident.
- `urgency` (`string`, optional): The urgency of the incident. Options: high, low.

### `pagerduty_incidents_list`

List existing incidents in PagerDuty. Supports filtering by status, urgency, service, team, assigned user, and date range.

Parameters:

- `date_range` (`string`, optional): When set to 'all', the since and until parameters and defaults are ignored.
- `include` (`string`, optional): Array of additional resources to include. Options: acknowledgers, agents, assignees, conference_bridge, escalation_policies, first_trigger_log_entries, responders, services, teams, users.
- `limit` (`integer`, optional): The number of results to return per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `service_ids` (`string`, optional): Comma-separated list of service IDs to filter incidents by.
- `since` (`string`, optional): The start of the date range to search (ISO 8601 format).
- `sort_by` (`string`, optional): Used to specify a field you would like to sort the response on. Options: incident_number, created_at, resolved_at, urgency.
- `statuses` (`string`, optional): Comma-separated list of statuses to filter by. Options: triggered, acknowledged, resolved.
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter incidents by.
- `until` (`string`, optional): The end of the date range to search (ISO 8601 format).
- `urgencies` (`string`, optional): Comma-separated list of urgencies to filter by. Options: high, low.
- `user_ids` (`string`, optional): Comma-separated list of user IDs to filter incidents assigned to.

### `pagerduty_log_entries_list`

List log entries across all incidents in PagerDuty. Log entries record actions taken on incidents including notifications, acknowledgements, and assignments.

Parameters:

- `include` (`string`, optional): Additional resources to include. Options: incidents, services, channels, teams.
- `is_overview` (`boolean`, optional): If true, only show log entries of type 'notify_log_entry'.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `since` (`string`, optional): The start of the date range (ISO 8601).
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter log entries by.
- `time_zone` (`string`, optional): Time zone for the log entries (IANA format).
- `until` (`string`, optional): The end of the date range (ISO 8601).

### `pagerduty_log_entry_get`

Get details of a specific PagerDuty log entry by its ID.

Parameters:

- `id` (`string`, required): The ID of the log entry to retrieve.
- `include` (`string`, optional): Additional resources to include. Options: incidents, services, channels, teams.
- `time_zone` (`string`, optional): Time zone for the log entry (IANA format).

### `pagerduty_maintenance_window_create`

Create a new maintenance window in PagerDuty. During a maintenance window, no incidents will be created for the associated services.

Parameters:

- `end_time` (`string`, required): The end time of the maintenance window (ISO 8601 format).
- `from_email` (`string`, required): The email address of the user creating the maintenance window. Required by PagerDuty.
- `service_ids` (`string`, required): Comma-separated list of service IDs to include in the maintenance window.
- `start_time` (`string`, required): The start time of the maintenance window (ISO 8601 format).
- `description` (`string`, optional): A description of the maintenance window.

### `pagerduty_maintenance_window_delete`

Delete a PagerDuty maintenance window. Only future and ongoing maintenance windows may be deleted.

Parameters:

- `id` (`string`, required): The ID of the maintenance window to delete.

### `pagerduty_maintenance_window_get`

Get details of a specific PagerDuty maintenance window by its ID.

Parameters:

- `id` (`string`, required): The ID of the maintenance window to retrieve.
- `include` (`string`, optional): Additional resources to include. Options: services, teams.

### `pagerduty_maintenance_window_update`

Update an existing PagerDuty maintenance window's description, start time, or end time.

Parameters:

- `id` (`string`, required): The ID of the maintenance window to update.
- `description` (`string`, optional): Updated description of the maintenance window.
- `end_time` (`string`, optional): Updated end time of the maintenance window (ISO 8601 format).
- `start_time` (`string`, optional): Updated start time of the maintenance window (ISO 8601 format).

### `pagerduty_maintenance_windows_list`

List maintenance windows in PagerDuty. Maintenance windows disable incident notifications for services during scheduled maintenance periods.

Parameters:

- `filter` (`string`, optional): Filter maintenance windows by time. Options: past, future, ongoing.
- `include` (`string`, optional): Additional resources to include. Options: services, teams.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by description.
- `service_ids` (`string`, optional): Comma-separated list of service IDs to filter maintenance windows by.
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter maintenance windows by.

### `pagerduty_notifications_list`

List notifications sent for incidents in a given time range. Notifications are messages sent to users when incidents are triggered, acknowledged, or resolved.

Parameters:

- `since` (`string`, required): The start of the date range (ISO 8601). Required.
- `until` (`string`, required): The end of the date range (ISO 8601). Required.
- `filter` (`string`, optional): Filters the results by notification type. Options: sms_notification, email_notification, phone_notification, push_notification.
- `include` (`string`, optional): Additional resources to include. Options: users.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `time_zone` (`string`, optional): Time zone for the notification data (IANA format).

### `pagerduty_oncalls_list`

List who is on call right now or within a date range. Supports filtering by schedule, escalation policy, and user.

Parameters:

- `earliest` (`boolean`, optional): When set to true, returns only the earliest on-call for each combination of escalation policy, escalation level, and user.
- `escalation_policy_ids` (`string`, optional): Comma-separated list of escalation policy IDs to filter by.
- `include` (`string`, optional): Additional resources to include. Options: users, schedules, escalation_policies.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `schedule_ids` (`string`, optional): Comma-separated list of schedule IDs to filter by.
- `since` (`string`, optional): The start of the time range to retrieve on-call information (ISO 8601).
- `time_zone` (`string`, optional): Time zone for the on-call data (IANA format).
- `until` (`string`, optional): The end of the time range to retrieve on-call information (ISO 8601).
- `user_ids` (`string`, optional): Comma-separated list of user IDs to filter on-calls by.

### `pagerduty_priorities_list`

List the priority options available for incidents in PagerDuty. Returns all configured priority levels.

### `pagerduty_schedule_create`

Create a new on-call schedule in PagerDuty with a single layer. Schedules determine who is on call at any given time.

Parameters:

- `layer_start` (`string`, required): The start time of the schedule layer (ISO 8601 format).
- `name` (`string`, required): The name of the schedule.
- `rotation_virtual_start` (`string`, required): The effective start time of the rotation to align turn order (ISO 8601 format).
- `time_zone` (`string`, required): The time zone of the schedule (IANA format, e.g., America/New_York).
- `user_ids` (`string`, required): Comma-separated list of user IDs to include in the rotation.
- `description` (`string`, optional): A description of the schedule.
- `layer_name` (`string`, optional): The name of the first schedule layer.
- `rotation_turn_length_seconds` (`integer`, optional): The duration of each on-call rotation turn in seconds (e.g., 86400 = 1 day, 604800 = 1 week).

### `pagerduty_schedule_delete`

Delete a PagerDuty on-call schedule. The schedule must not be associated with any escalation policies.

Parameters:

- `id` (`string`, required): The ID of the schedule to delete.

### `pagerduty_schedule_get`

Get details of a specific PagerDuty on-call schedule by its ID, including layers and users.

Parameters:

- `id` (`string`, required): The ID of the schedule to retrieve.
- `since` (`string`, optional): The start of the date range to show schedule entries for (ISO 8601).
- `time_zone` (`string`, optional): Time zone of the displayed schedule (IANA format).
- `until` (`string`, optional): The end of the date range to show schedule entries for (ISO 8601).

### `pagerduty_schedule_update`

Update an existing PagerDuty on-call schedule's name, description, or time zone.

Parameters:

- `id` (`string`, required): The ID of the schedule to update.
- `description` (`string`, optional): Updated description of the schedule.
- `name` (`string`, optional): Updated name of the schedule.
- `time_zone` (`string`, optional): Updated time zone (IANA format, e.g., America/New_York).

### `pagerduty_schedules_list`

List on-call schedules in PagerDuty. Supports filtering by query string and pagination.

Parameters:

- `include` (`string`, optional): Additional resources to include. Options: schedule_layers, teams, users.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by name.

### `pagerduty_service_create`

Create a new service in PagerDuty. A service represents something you monitor and manage incidents for.

Parameters:

- `escalation_policy_id` (`string`, required): The ID of the escalation policy to assign to this service.
- `name` (`string`, required): The name of the service.
- `acknowledgement_timeout` (`integer`, optional): Time in seconds that an incident is automatically re-triggered after being acknowledged. Set to 0 to disable.
- `alert_creation` (`string`, optional): Whether a service creates only incidents or creates both incidents and alerts. Options: create_incidents, create_alerts_and_incidents.
- `auto_resolve_timeout` (`integer`, optional): Time in seconds that an incident is automatically resolved if left open. Set to 0 to disable.
- `description` (`string`, optional): The user-provided description of the service.

### `pagerduty_service_delete`

Delete an existing PagerDuty service. This action is irreversible. Only services without open incidents may be deleted.

Parameters:

- `id` (`string`, required): The ID of the service to delete.

### `pagerduty_service_get`

Get details of a specific PagerDuty service by its ID.

Parameters:

- `id` (`string`, required): The ID of the service to retrieve.
- `include` (`string`, optional): Additional resources to include. Options: escalation_policies, teams, integrations.

### `pagerduty_service_update`

Update an existing PagerDuty service. Can change name, description, escalation policy, timeouts, and alert creation settings.

Parameters:

- `id` (`string`, required): The ID of the service to update.
- `acknowledgement_timeout` (`integer`, optional): Time in seconds that an incident is automatically re-triggered after being acknowledged.
- `alert_creation` (`string`, optional): Whether a service creates only incidents or also alerts. Options: create_incidents, create_alerts_and_incidents.
- `auto_resolve_timeout` (`integer`, optional): Time in seconds that an incident is automatically resolved if left open.
- `description` (`string`, optional): The user-provided description of the service.
- `escalation_policy_id` (`string`, optional): The ID of the escalation policy to assign to this service.
- `name` (`string`, optional): The name of the service.
- `status` (`string`, optional): The current state of the service. Options: active, warning, critical, maintenance, disabled.

### `pagerduty_services_list`

List existing services in PagerDuty. Supports filtering by team, query string, and pagination.

Parameters:

- `include` (`string`, optional): Additional resources to include. Options: escalation_policies, teams, integrations, auto_pause_notifications_parameters.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by name.
- `sort_by` (`string`, optional): Sort results by this field. Options: name, name:asc, name:desc.
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter services by.

### `pagerduty_team_create`

Create a new team in PagerDuty. Teams allow grouping of users and services.

Parameters:

- `name` (`string`, required): The name of the team.
- `description` (`string`, optional): A description of the team.

### `pagerduty_team_delete`

Delete a PagerDuty team. The team must have no associated users, services, or escalation policies before it can be deleted.

Parameters:

- `id` (`string`, required): The ID of the team to delete.

### `pagerduty_team_get`

Get details of a specific PagerDuty team by its ID.

Parameters:

- `id` (`string`, required): The ID of the team to retrieve.

### `pagerduty_team_update`

Update an existing PagerDuty team's name or description.

Parameters:

- `id` (`string`, required): The ID of the team to update.
- `description` (`string`, optional): Updated description of the team.
- `name` (`string`, optional): The updated name of the team.

### `pagerduty_teams_list`

List teams in PagerDuty. Supports filtering by query string and pagination.

Parameters:

- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by name.

### `pagerduty_user_create`

Create a new user in PagerDuty. Requires name, email, and the creating user's email in the From header.

Parameters:

- `email` (`string`, required): The user's email address.
- `from_email` (`string`, required): The email address of the admin creating this user. Required by PagerDuty.
- `name` (`string`, required): The name of the user.
- `color` (`string`, optional): The schedule color for the user.
- `role` (`string`, optional): The user's role. Options: admin, limited_user, observer, owner, read_only_user, restricted_access, read_only_limited_user, user.
- `time_zone` (`string`, optional): The time zone of the user (IANA format, e.g., America/New_York).

### `pagerduty_user_delete`

Delete a PagerDuty user. Users cannot be deleted if they are the only remaining account owner.

Parameters:

- `id` (`string`, required): The ID of the user to delete.

### `pagerduty_user_get`

Get details of a specific PagerDuty user by their ID.

Parameters:

- `id` (`string`, required): The ID of the user to retrieve.
- `include` (`string`, optional): Additional resources to include. Options: contact_methods, notification_rules, teams.

### `pagerduty_user_update`

Update an existing PagerDuty user's profile including name, email, role, time zone, and color.

Parameters:

- `id` (`string`, required): The ID of the user to update.
- `color` (`string`, optional): The schedule color for the user.
- `email` (`string`, optional): The user's updated email address.
- `name` (`string`, optional): The updated name of the user.
- `role` (`string`, optional): The user's role. Options: admin, limited_user, observer, owner, read_only_user, restricted_access, read_only_limited_user, user.
- `time_zone` (`string`, optional): The time zone of the user (IANA format, e.g., America/New_York).

### `pagerduty_users_list`

List users in PagerDuty. Supports filtering by query, team, and includes.

Parameters:

- `include` (`string`, optional): Additional resources to include. Options: contact_methods, notification_rules, teams.
- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by name.
- `team_ids` (`string`, optional): Comma-separated list of team IDs to filter users by.

### `pagerduty_vendors_list`

List available PagerDuty vendors (integration types). Vendors represent the services or monitoring tools that can be integrated with PagerDuty.

Parameters:

- `limit` (`integer`, optional): The number of results per page. Maximum 100.
- `offset` (`integer`, optional): Offset to start pagination search results.
- `query` (`string`, optional): Filters the results by vendor name.


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
