> For the complete documentation index, see [llms.txt](https://docs.pagerly.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pagerly.io/oncall-and-rotations/sync-schedule-to-pagerduty.md).

# Sync Schedule to PagerDuty

Pagerly can push your Pagerly-managed rotation into a **PagerDuty schedule** automatically. Each shift is written as an **override** on the PagerDuty schedule you choose, so PagerDuty always reflects who is on-call in Pagerly — including shift swaps, overrides, and holiday skips.

{% hint style="info" %}
This sync is for teams whose rotation is **created in Pagerly** (Round Robin or Shift Schedules). Teams that import their schedule *from* PagerDuty don't need this — their source of truth is already PagerDuty.
{% endhint %}

## Prerequisites

1. **PagerDuty connected to Pagerly** with an account-level API key that has **write access**. A read-only key can list schedules but cannot create overrides.
2. **A PagerDuty schedule to sync into.** We recommend creating a dedicated schedule in PagerDuty for this. Any placeholder user on its base layer is fine — Pagerly's overrides sit on top of the base layer.
3. **Team members exist in PagerDuty** with the **same email address** as their Slack account. Members whose email doesn't match any PagerDuty user are skipped.

## Sync schedule to PagerDuty

1\. Navigate to <https://workspace.pagerly.io/calendar>

2\. Select the team whose schedule you want to sync to PagerDuty.

3\. Click "Sync to Third-Party Apps".

4\. Click the "Sync" button for PagerDuty.

5\. Select the target PagerDuty schedule from the dropdown and click "Save".

6\. Done! Pagerly pushes the upcoming shifts right away and keeps the PagerDuty schedule updated automatically whenever the rotation changes — edits, shift swaps, and overrides included.

## Good to know

* **Only future shifts are synced.** Past shifts are never written to PagerDuty.
* **Existing PagerDuty layers are untouched.** Pagerly only adds/removes its own overrides; whatever is on the schedule's base layer stays as a fallback.
* **Changes flow one way** — from Pagerly to PagerDuty. Edit the rotation in Pagerly (or via Slack). Changes made directly in PagerDuty are not pulled back into Pagerly.
* If a shift's member can't be matched to a PagerDuty user by email, that shift is skipped — the rest of the rotation still syncs.

## Disconnect

Click **Disconnect Sync** on the PagerDuty tile. You'll be asked whether to also **remove the entries Pagerly created** in PagerDuty — choose *Yes* to clean up the schedule, or *No* to leave the already-created overrides in place.
