Skip to main content

Overview

Updates an existing on-call schedule, including its name, time zone, description, and schedule layers. This tool can modify the rotation order, shift durations, and time restrictions.
This is a write tool that modifies resources in your PagerDuty account. It requires the --enable-write-tools flag to be enabled.

Parameters

schedule_id
string
required
The ID of the schedule to update.
name
string
required
The updated name for the schedule.
time_zone
string
required
The time zone for the schedule using IANA format (e.g., “America/New_York”).
description
string
Optional updated description for the schedule.
schedule_layers
array
required
Updated array of schedule layers. Each layer requires the same fields as create_schedule:
  • name - Layer name
  • start - Layer start time (ISO 8601)
  • rotation_virtual_start - Virtual start for rotation calculation
  • rotation_turn_length_seconds - Shift duration in seconds
  • users - Ordered list of users
  • end (optional) - Layer end time
  • restrictions (optional) - Time restrictions

Response

Returns the updated schedule object with all modified fields.

Example Usage

Update schedule name and description

Rename schedule P4B2Z3G to "Production On-Call" and update its description

Change rotation order

For schedule P4B2Z3G, move Alice to be first in the rotation

Modify shift duration

Change the Production schedule from weekly to daily rotations

Add time restrictions

Update the Support schedule to only be active during business hours (9am-5pm weekdays)

Add or remove users

Add user U4J8K2L to the Backend schedule rotation after Bob

Important Considerations

Updating a schedule replaces the entire configuration. You must provide complete schedule layer definitions, not just the fields you want to change.

Best Practice Workflow

  1. Get current configuration - Use get_schedule to retrieve the existing schedule details
  2. Modify as needed - Make your changes to the schedule data
  3. Update the schedule - Call update_schedule with the modified configuration
  4. Verify changes - Use get_schedule again to confirm the updates
Changes to schedules take effect immediately and will affect current and future on-call assignments.

Common Use Cases

  • Adjust rotation order - Change which users are on-call and in what sequence
  • Modify shift duration - Change from weekly to daily rotations or vice versa
  • Add/remove team members - Update the user list in the rotation
  • Change time zone - Adjust for team relocations or daylight saving preferences
  • Add restrictions - Limit coverage to business hours or specific days
  • Update schedule name - Rename schedules for clarity
  • Extend or end layers - Modify start/end dates for schedule layers

Understanding Schedule Updates

Replacing vs Modifying Layers

When you update a schedule, you’re replacing the layer configuration. To add a new layer, include both existing and new layers in the update.

User Order Matters

The order of users in the users array determines their position in the rotation. The first user takes the first shift, the second user takes the second shift, and so on.

Virtual Start and Rotation Alignment

Changing rotation_virtual_start affects who is on-call when. If you need to adjust which user is currently on-call, you may need to modify the virtual start date.

get_schedule

Get current schedule configuration

create_override

Create temporary overrides without modifying the schedule

list_schedules

View all schedules

list_oncalls

Check current on-call assignments

See Also

Build docs developers (and LLMs) love