# Edit Schedules

Add users or create overrides on a schedule. Pause a schedule or restore previous versions.

As people join and leave your on-call rotations, you must edit your schedules so that the right people are on-call and notified at the right times.

> **Create a Schedule:** If you are creating a schedule for the first time, visit our article on [Schedule Basics](/incident-management/schedules/schedule-basics).

> **Schedule Changes:** Any changes made to a schedule (including adding and removing people) do not affect the historical record of that schedule — changes apply only to future dates and times. When adding or removing people, check the effective date to rotate schedules on the right date and time.
>
> If you want to revert a schedule to a previous version, see the section [Restore a Schedule to a Previous Version](#restore-a-schedule-to-a-previous-version).

> **Required User Permissions:** You can add any role to schedules, with the exception of Limited and Full Stakeholders.
>
> The following roles can add or remove [Teams](/account-admin/teams) while editing:
>
> - Global Admin
> - Account Owner
>
> The following roles can make other edits to on-call schedules:
>
> - User role
> - Admin/Global Admin
> - Manager base roles and team roles.
>   - Manager Team roles can only manage schedules associated with their Team.
> - Account Owner

## Add Users to Existing Schedules

To add additional people to an existing on-call schedule:

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. In the **Select a user** dropdown, find and select a person.

![A screenshot of the PagerDuty web app showing how to select a user on a schedule](/images/kb/5219c0de51c2f238bbf757da237d9370831af22eb675f0853029473494e8a342-edit-schedules-add-user.webp)
*Select a user*

3. Repeat the previous step until the required people are in the rotation. People move through the rotation in top-to-bottom order. You can drag and drop names to adjust the rotation order.
4. Click **Save Schedule** in the bottom right corner of the screen.

> **Inactive Users:** If you see "inactive" next to a person's name on a schedule, it means that their account is deleted. To add this person to a schedule, create a new account for them in [Users](/account-admin/manage-users#add-users) and then add the new account to the rotation.

### Copy Users

If you use the same people in multiple layers, you can copy a layer’s participants and paste them into another layer.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Under **Step 1: Add Users**, click **More** and select **Copy Users**.

![A screenshot of the PagerDuty web app showing how to copy users from a schedule layer](/images/kb/a8fad1834dc9b3e4aed06e6484431b9b84b192484e34c80427f1fd9dd415bbfd-edit-schedules-copy-users.webp)
*Copy users from a layer*

3. Select one of the following options:

   1. Navigate to the target layer, click **More** and select **Add Users**. This option adds the copied people to the existing ones in that layer.
   2. Navigate to the target layer, click **More** and select **Replace Users**. This option overwrites the existing people in that layer.

### Remove Users From Existing Schedules

To permanently remove a person from an on-call schedule:

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Click the **** icon next to the name of the person you want to remove.

![A screenshot of the PagerDuty web app showing how to remove a user from a schedule layer](/images/kb/9b7e69d92b1ba435ed31b5d04dd8fba007a5c8502333c9ef95950bd56bc139a0-edit-schedules-remove-user.webp)
*Remove a user*

3. Click **Save Schedule** in the bottom right corner.

> **Overrides:** Removing a person from a schedule does not delete their future overrides, if any exist. Read [Delete an Override](#delete-an-override) for more information.

## Duplicate a Schedule

Copying an existing schedule to create a new one with the same people and settings allows you to create new schedules at scale.

You can duplicate a schedule in two places in the web app:

- On the [Schedule List](#schedule-list) page
- On the [Schedule Details](#schedule-details) page

> **Team Association:** The **Team** selection for copied schedules is initially blank. Roles with Team Manager permissions can associate the new schedule with any [Teams](/account-admin/teams) they belong to.

### Schedule List

1. Navigate to **People**  →  **Schedules**.
2. Click the **** icon and select **Duplicate**. This action creates a new schedule that copies all people and settings from the previous schedule, excluding the team association.
3. Enter a **Schedule Name** for the new on-call schedule and make any necessary edits.
4. Click **Save Schedule**.

### Schedule Details

1. Navigate to **People**  →  **Schedules** and select the **name** of your desired schedule.
2. On the right side, click **Copy this Schedule**.
3. Enter a **Schedule Name** for the new on-call schedule and make any necessary edits.
4. Click **Save Schedule**.

## Rename Schedule Layers

You can edit a schedule layer's name to provide a descriptive title. A schedule layer's name can be up to 100 characters long and supports emojis.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Click the layer name you want to update and enter a new value.
3. Click **Save Schedule**.

![A screenshot of the PagerDuty web app showing how to edit a schedule layer name](/images/kb/57c9d875bf100e5a09e92cf8fb43041ea73096a24ea90cc578a86d5a4c5524c6-edit-schedules-edit-layer-name.webp)
*Edit schedule layer name*

## Reorder Schedule Layers

The order of schedule layers determines how the final schedule is computed. For example, if Layer 1 and Layer 2 have shifts that overlap and Layer 2 appears below Layer 1 in the UI, the final schedule includes only shift times from Layer 1 that shifts from Layer 2 do not cover.

You can change the order of a schedule's layers to adjust how the final schedule is computed.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Click and hold the gray bar at the top of the layer you want to move, drag it to your preferred position, and release it.
3. Click **Save Schedule**.

> **Note:** Changing the order of schedule layers can cause the final schedule to appear incorrect when viewing past schedules. This occurs because the final schedule was computed using a layer order that is no longer in effect.

## Duplicate a Layer

You can duplicate an entire layer’s configuration (including people, on-call rotation type, handoff time, and restrictions) into a new layer.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Click **More** to the right of the layer you want to duplicate and select **Duplicate Layer**.

![A screenshot of the PagerDuty web app showing how to duplicate a schedule layer](/images/kb/95b5196e89078eef96e8bf1c52b7518f25c52b099334205affba2c5d9a31963a-edit-schedules-duplicate-layer.webp)
*Duplicate a schedule layer*

3. A new layer is created with the same configuration after the last layer in your schedule. You can move this layer by dragging and dropping it to your preferred position.

### Copy Layer Configuration

You can copy a layer’s **Rotation Type** and **Handoff Time** configuration and paste it into another layer. This action overwrites the configurations of the target layer.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Click **More** to the right of the desired layer and select **Copy Layer Configuration**.
3. Navigate to the target layer, click **More** and select **Paste Layer Configuration**.

### Copy Layer Restrictions

You can copy a layer’s **Restrict on-call shifts to specific times** configuration into another layer. This action overwrites the configurations of the target layer.

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of your desired schedule and select **Edit**.
2. Under **Step 2: Set up an On-call rotation**, click **More** within the desired layer and select **Copy Layer Restrictions**.

![A screenshot of the PagerDuty web app showing how to copy layer restrictions](/images/kb/f24e0eee58668a5ba64821f422a1cddeb72299f6a0b9c7d5c980bd88b656e03d-edit-schedules-copy-layer-restrictions.webp)
*Copy layer restrictions*

3. Navigate to the target layer, click **More** and select **Replace Layer Restrictions**.

![A screenshot of the PagerDuty web app showing how to replace layer restrictions](/images/kb/8fe98b61f655cf54f5bda1c24f925a6bddc878baacff9e34f5b9cf0a9b550b70-edit-schedules-replace-layer-restrictions.webp)
*Replace layer restrictions*

![A screenshot of the PagerDuty web app showing layer restrictions](/images/kb/af1a4f690814b80ac4efb5e666d2a355e1d9201b4941312fa487d52ccc00a5eb-edit-schedules-replaced-layer-restrictions.webp)
*Layer restrictions*

## Create Overrides

Overrides allow you to make manual one-time adjustments to on-call schedules. Overrides are most commonly used when a person is sick, goes on vacation, or wants to swap on-call shifts.

Scheduling an override creates an override layer on a schedule. Scheduled overrides display beneath your schedule layers as the lowest layer before the **Final Schedule**.

![A screenshot of the PagerDuty web app showing an override layer on the final schedule](/images/kb/6b62773c03c53a09ba4828dea4fef150e47698d27f62e5b3362cbbd9505a411c-edit-schedules-override-layer.webp)
*Override layer on the final schedule*

You can create overrides in the [web app](#create-overrides-in-the-web-app) or [using the REST API](#create-overrides-using-the-rest-api).

> **Required User Permissions:** All roles, with the exception of Restricted Access, Observers, Limited Stakeholders, and Full Stakeholders, can create overrides.

### Create Overrides in the Web App

You can schedule overrides on existing schedules in two places:

- On a specific schedule shift
- On any span of time on a schedule

#### Override a Specific Schedule Shift

Scheduling an override by selecting a specific shift pre-populates the relevant information.

1. Navigate to **People**  →  **Schedules**.
2. From the **Schedules** page or from a schedule's edit page, click directly on the shift you want to override. You can tab forward by days, weeks, and months to locate the shift if necessary.
3. In the **Schedule an Override** modal, fill out or confirm the following fields:

| Field                           | Action                              |
| :------------------------------ | :---------------------------------- |
| **Who should take this shift?** | Select the person taking the shift. |
| **Start Date**                  | Confirm or edit the start date.     |
| **Start time**                  | Confirm or edit the start time.     |
| **End Date**                    | Confirm or edit the end date.       |
| **End time**                    | Confirm or edit the end time.       |

4. Click **Create Override**.

![A screenshot of the PagerDuty web app showing how to override an on-call shift](/images/kb/1628d12e9a46d9e8289ccabfa6aed2195757961748c470761778fe412efb95a1-edit-schedules-override-modal.webp)
*Override an on-call shift*

#### Override Any Span of Time on a Schedule

1. Navigate to **People**  →  **Schedules**. Click the **** icon to the right of the desired schedule and select **Schedule an override**.

![A screenshot of the PagerDuty web app showing how to schedule an override from the Schedules list](/images/kb/9b1caded257e01cffe6f972d5daad500f2f06acff21370818506f1716ea93a2c-edit-schedules-schedule-an-override-menu.webp)
*Schedule an override from the Schedules list*

2. Alternatively, click into a schedule and select **Schedule an Override** on the right side.

![A screenshot of the PagerDuty web app showing how to schedule an override from a schedule](/images/kb/2a615a9825d12412295e074d49c5d37b5ae446154f40b6d7ec06b411eb6c9f97-edit-schedules-schedule-an-override-from-schedule.webp)
*Schedule an override from a schedule*

3. In the **Schedule an Override** modal, select values for the fields:

| Field         | Action                                 |
| :------------ | :------------------------------------- |
| **User**      | Select the person taking the override. |
| **Starts on** | Select the start date and time.        |
| **Ends on**   | Select the end date and time.          |

4. Click **Create Override**.

### Create Overrides in My On-Call Shifts

Follow [our documentation on My On-Call Shifts](/incident-management/schedules/my-on-call-shifts#create-overrides-on-my-on-call-shifts) to create overrides from this page.

### Create Overrides Using the REST API

An example Python script to schedule overrides for a person going on vacation is located here: [vacation\_overrides.py](https://github.com/PagerDuty/public-support-scripts/tree/master/overrides_bulk_operations).

Our developer docs provide more information on [creating](/developer/api/reference/rest/schedules/create-schedule-override) and [deleting](/developer/api/reference/rest/schedules/delete-schedule-override) overrides using the REST API.

## Delete an Override

You can delete an upcoming override if it is no longer needed. If you delete an override during the middle of the scheduled shift, the regular schedule resumes immediately. You cannot delete past overrides; you can only delete present or future overrides.

1. Navigate to **People**  →  **Schedules** and select your desired schedule, or click the **** icon and select **View**.
2. Navigate to the scheduled override time within the timeline or calendar view.
3. In the **Upcoming Overrides** list on the right side, click the **** icon.

![A screenshot of the PagerDuty web app showing how to delete an override](/images/kb/78b4c585f6bb1cdc3eb1c5bc655660a33c9e427d73a2c8b0f3fd8e8e4b63cc81-edit-schedules-delete-override.webp)
*Delete an override*

## Edit Schedule Time Zone Settings

When you create a new schedule, it defaults to the [account-level time zone](/account-admin/time-zone-settings#change-the-account-level-time-zone). Follow the instructions in [Change the Schedule-Level Time Zone](/account-admin/time-zone-settings#change-the-schedule-level-time-zone) to use a different time zone for your schedule than the account.

## Pause or Deactivate an On-Call Schedule

Sometimes you might want to stop using a schedule without deleting it.

For example:

- The schedule is a draft which you are not ready to implement. (Note, however, that you can set an effective date for future changes without deactivating your current schedule.)
- The schedule is only used for particular occasions, such as on-call shadowing.

To take an on-call schedule out of use, remove the schedule from any escalation policies it is assigned to, or [change the escalation policy your services use](/incident-management/services/services-and-integrations#edit-a-services-escalation-policy) to another that does not include the schedule.

### Option 1: Remove a Schedule from an Escalation Policy

The right sidebar displays any escalation policies where the schedule is in use.

![A screenshot of the PagerDuty web app showing escalation policies that use this schedule](/images/kb/78b4c585f6bb1cdc3eb1c5bc655660a33c9e427d73a2c8b0f3fd8e8e4b63cc81-edit-schedules-delete-override.webp)
*Escalation policies that use this schedule*

1. Select the **escalation policy** you want to remove the schedule from. This action opens the escalation policy page.
2. Click **Edit** in the top right corner of the page.
3. Locate your schedule in the **Notify the following users or schedules** field and click the **** icon to remove it from the escalation rule.

![A screenshot of the PagerDuty web app showing how to remove a schedule from an escalation policy](/images/kb/17252bc29f9417d5f8c5e42b082034a10f0ef17a15d08549626b2af312095a05-edit-schedules-remove-schedule-ep.webp)
*Remove schedule from an escalation policy*

> **Tip:** If the schedule is the only target (person or schedule) in the escalation rule, click the **** icon for the entire rule, as each rule must contain at least one target.

4. Click **Save** at the bottom of the escalation policy.

### Option 2: Change the Escalation Policy for a Service

Visit [Escalation Policies and Schedules](/incident-management/schedules/escalation-policies-and-schedules#deactivate-schedules-via-escalation-policies) for instructions to change a service’s escalation policy. This action ensures that incidents triggered for the service do not alert the schedule you want to take out of use.

## Restore a Schedule to a Previous Version

If you or another person alters a schedule in an undesired way, you can quickly revert a schedule back to a previously saved version. This feature also allows you to see when a change occurred.

1. Click **People**  →  **Schedules**.
2. Select the **name** of the schedule you want to revert.
3. On the right side of the page, select **Revert this Schedule** to view recent versions.

![A screenshot of the PagerDuty web app showing how to restore a schedule to a previous version](/images/kb/5a96e80ed7aed4ab8e2e5b6e00546c14cc455e6b7e7117af80e1d26748222f9c-edit-schedules-revert.webp)
*Restore a schedule to a previous version*

4. Select an option from the dropdown menu to open the schedule's edit page with that version populated.
5. Confirm the schedule details, optionally make additional changes, and click **Revert Schedule** in the upper right corner.

> **Schedule Limitation with Overrides:** Only changes made to the schedule layers can be reverted. Overrides are not affected if you revert a schedule. For more information about reviewing who made a change to a schedule, see [View Schedule Audit Trail Reporting](/incident-management/analytics/audit-trail#schedule-audit-trail-reporting).

## Schedules and Teams Behavior

For accounts with [Teams](/account-admin/teams), if you [assign a schedule to a Team](/incident-management/schedules/schedule-basics#create-a-schedule), all people on the schedule are added to the Team. Similarly, if a schedule is already assigned to a Team, adding people to the schedule adds them to the Team. You can view a schedule's Teams in the **Schedule Information** sidebar on the right side.

### Add a Schedule to a Team

> **Required User Permissions:** While editing an on-call schedule, only Global Admins and the Account Owner can add the schedule to a Team.

1. Navigate to **People**  →  **Schedules** and click the **** icon to the right of your desired schedule and select **Edit**.
2. In the **Teams** section, select the Team(s) you want to associate the schedule with.
3. Click **Save Schedule**.

### Remove a Schedule from a Team

Before you can remove a schedule from a Team, keep the following items in mind:

- If you manually added a schedule to a Team, a person with a base role of Admin or higher can remove the schedule from the Team.
- If you manually added an escalation policy with a schedule to a Team, remove the escalation policy from the Team before removing the schedule.

1. Navigate to **People**  →  **Schedules** and click the **** icon to the right of your desired schedule and select **Edit**.
2. In the **Teams** section, click the **** icon to the right of the Team(s) you want to remove the schedule from.
3. Click **Save Schedule** in the bottom right corner.
