Overview
Creates a new on-call schedule with one or more schedule layers defining the rotation pattern.Parameters
The name of the schedule. Should be descriptive and unique.
The time zone for the schedule using IANA format (e.g., “America/New_York”, “Europe/London”, “UTC”).
Optional description explaining the purpose of the schedule.
Array of schedule layers that define the rotation. Each layer requires:Required fields:
name(string) - Name identifying the layerstart(datetime) - When the layer starts (ISO 8601 format)rotation_virtual_start(datetime) - Effective start time for rotation calculationrotation_turn_length_seconds(integer) - Duration of each on-call shift in secondsusers(array) - Ordered list of users in the rotation. Each user needs:user.id- The PagerDuty user ID
end(datetime) - When the layer ends (null for ongoing)restrictions(array) - Time restrictions limiting when the layer is active:type- “daily_restriction” or “weekly_restriction”start_time_of_day- Time when restriction starts (HH:MM:SS)duration_seconds- How long the restriction lastsstart_day_of_week- Day of week (1=Monday, 7=Sunday, ISO-8601)
Response
Returns the created schedule object with all fields populated, including the assigned schedule ID.Example Usage
Create a basic weekly rotation
Create with business hours restriction
Create with multiple layers
Understanding Rotation Parameters
rotation_turn_length_seconds
Defines how long each user stays on-call:- 1 day:
86400 - 1 week:
604800 - 2 weeks:
1209600 - 1 month (30 days):
2592000
rotation_virtual_start
The “virtual start” determines where in the rotation sequence to begin. This can be set before the actual layer start date to align with existing rotation patterns. For example, if you want Bob to be first on-call when the schedule starts, you might set the virtual start to a date that puts Bob in the first position.Restrictions
Restrictions limit when a layer is active:- Daily restrictions - Same time window every day (e.g., 9am-5pm)
- Weekly restrictions - Specific days and times (e.g., Monday-Friday 9am-5pm)
Common Use Cases
- New team setup - Create on-call schedules for new teams
- Service coverage - Set up dedicated schedules for different services
- Business hours support - Create schedules with time restrictions
- Follow-the-sun - Set up schedules for global coverage
- Seasonal schedules - Create temporary schedules with end dates
Important Notes
Each schedule layer requires a
name field. This is used to identify the layer within the schedule.Related Tools
list_schedules
View all schedules
get_schedule
Get schedule details
update_schedule
Modify an existing schedule
create_override
Create temporary overrides
See Also
- Write Mode Configuration - How to enable write tools
- On-Call Management Guide - Best practices for schedules