> Documentation index for AI agents: https://docs.pagerduty.com/llms.txt

# Upgrade Legacy Schedules to Shift-Based Schedules

Use the upgrade tool to upgrade layer-based legacy schedules to rotation-based shift-based schedules.

Use the upgrade tool to upgrade your layer-based **legacy schedules** to rotation-based **shift-based schedules**. The upgrade tool shows the upgrade status of each legacy schedule and lets you preview a schedule before you upgrade it. The upgrade dashboard lists every legacy schedule in your account that needs to be upgraded.

Legacy schedules display a **Legacy** badge on the **Schedules** dashboard. When you upgrade a schedule, the badge is removed. If you have many schedules, use the badge to track which ones you still need to upgrade.

> **Upgrades Are Permanent:** After you upgrade a schedule to a shift-based schedule, you cannot revert it to a legacy schedule.

## Upgrade Statuses

| Status                                 | Description                                                                                                                                 | Action Required                                                                                                                      |
| :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Ready to Upgrade**                | The legacy schedule and the shift-based schedule have full parity. The upgrade does not affect on-call rotations.                           | Review and confirm the upgrade. For more information, see [Upgrade Schedule (Ready to Upgrade)](#upgrade-schedule-ready-to-upgrade). |
| 🟡 **Needs API Update**                | The schedule is managed or read through the Schedules API v2. Scripts and integrations that use it must be updated to the Schedules API v3. | Update your API integrations to v3. For more information, see [Upgrade Schedule (Needs API Update)](#upgrade-schedule-needs-api-update).     |
| 🔴 **Needs Manual Setup**              | The schedule is not compatible with shift-based schedules and must be recreated.                                                            | Recreate the schedule manually. For more information, see [Upgrade Schedule (Needs Manual Setup)](#upgrade-schedule-needs-manual-setup).     |

## Check Upgrade Status

1. Navigate to **People**  →  **Schedules**.
2. Identify the schedules that display the **Legacy** badge.

![Schedules dashboard with Legacy badges](/images/kb/schedules-legacy-badge-highlighted.webp)
*Legacy schedules on the Schedules dashboard*

3. In the upgrade banner at the top of the dashboard, click **Review & Upgrade Schedules**.
4. The upgrade dashboard lists every legacy schedule that needs to be upgraded, along with its upgrade status. Use the search bar to find specific schedules, or filter by team.

> **Upgrade by Team:** If your account has many teams, filter the upgrade dashboard by team to upgrade in stages. Start with teams whose schedules all have the **Ready to Upgrade** status. You can upgrade those right away without affecting on-call rotations. Then handle teams that have schedules with the **Needs API Update** or **Needs Manual Setup** status.
>
> ![Upgrade dashboard filtered to All Teams, with the team filter dropdown highlighted](/images/kb/schedule-upgrade-by-team.webp)
> *Filter the upgrade dashboard by team*

## Upgrade Schedule (Ready to Upgrade)

Schedules with the **Ready to Upgrade** status have no conflicts and upgrade in one click. To upgrade a schedule:

1. In the upgrade dashboard, find a schedule with the **Ready to Upgrade** status.

![A schedule that is ready to upgrade to a shift-based schedule](/images/kb/schedule-ready-to-upgrade.webp)
*A schedule with the Ready to Upgrade status*

2. Click **Preview & Upgrade**.
3. Click **Upgrade Schedule**.

![Preview and Upgrade screen showing the upgraded schedule matches the original](/images/kb/schedule-upgrade-preview.webp)
*Upgrade schedule preview screen*
4. [Verify that your schedule was upgraded](#verify-upgraded-schedules).

## Upgrade Schedule (Needs API Update)

Schedules with the **Needs API Update** status are managed or read through the Schedules API v2. Shift-based schedules use the Schedules API v3, which has different endpoints and response formats. These schedules display a banner that reads **This schedule is accessed via the Schedules API**.

> **Update Your Integrations Before You Upgrade:** Scripts and automations that use the Schedules API v2 endpoints stop working after the upgrade unless you update them first. The following stop working:
>
> - API-based schedule modifications
> - Automated shift and override management
> - Workflows that interact with the schedule

1. In the upgrade dashboard, find a schedule with the **Needs API Update** status.
2. In the banner, click **View Details** to see which features are affected.
3. Update your scripts to use the Schedules API v3 endpoints. For more information, see the [Schedules API v2 to v3 Upgrade Guide](/developer/schedules-v2-to-v3-upgrade).
4. Test your integrations.
5. Upgrade the schedule.

> **Note:** PagerDuty can't check your scripts, so the schedule keeps its **Needs API Update** status after you update your integrations. When your integrations are updated and tested, you can safely upgrade the schedule.

## Upgrade Schedule (Needs Manual Setup)

Schedules with the **Needs Manual Setup** status are not compatible with shift-based schedules and cannot be upgraded with the upgrade tool. You must create a replacement schedule instead.

1. In the upgrade dashboard, find a schedule with the **Needs Manual Setup** status.
2. Click **View Details**. The **How to Recreate this Schedule** modal appears.

![Manual upgrade required for schedules](/images/kb/schedule-manual-upgrade-required.webp)
*A schedule with the Needs Manual Setup status*

3. Click **Create Schedule**, then build a new shift-based schedule with the same teams, users, and shifts as the original. Keep the original schedule open in another tab to use as a reference.
4. Swap the escalation policy connection. Remove the original schedule from its escalation policy, then add the new schedule. For more information, see [Escalation Policies](/incident-management/schedules/escalation-policies).
5. Point your integrations at the new schedule. The new schedule has a new ID, so scripts and integrations that reference the original schedule stop working until you update them.
6. Delete the original schedule.

> **Important:** Do these steps in order so you don't lose on-call coverage. Add the new schedule to the escalation policy before you delete the original.

## Verify Upgraded Schedules

1. Navigate to **People**  →  **Schedules**.
2. Confirm that the upgraded schedule no longer displays the **Legacy** badge.

![Schedule no longer displays Legacy badge](/images/kb/schedule-upgraded-no-legacy-badge.webp)
*An upgraded schedule without the Legacy badge*

## Create New Legacy Schedules

You can no longer create legacy schedules. All new schedules are created as shift-based schedules.
