Schedule Examples

Complex Irregular Schedules

This schedule is set up for teams that rotate 12-hour shifts that are on for one week, and then off for a few.

Schedule Requirements

This schedule has 6 users that alternate their shifts every other week. One week, they work Sunday-Tuesday-Thursday-Saturday (STTS) and another week, they work Monday-Wednesday-Friday (MWF). In total, there are two six-week rotations as everyone rotates through the MWF schedule, and one staggered by three weeks, where they work through the STTS.

Configuration

Layer 1 rotates weekly with a handoff time at the beginning of the first time restriction. It will cover the STTS days by restricting on-call duty to specific times-of-the-week.

Layer 2 rotates weekly with a handoff time at the beginning of its first time restriction. It will cover the MWF days by restricting on-call duty to specific times-of-the-week.

Final Schedule

Complex Schedule for 2 Users on a 2-Day Rotation with Separate Weekends

The example below shows a complex schedule for two users that are on a two-day rotation. They are on call in the evenings from 17:00 till 8:00 in the morning. However, on Saturday and Sunday, the on call user is on call for 24 hours from 8:00 - 8:00 the next day.

Schedule Requirements

During the weekdays, User 1 and User 2 are only on call from 5pm to 8am. Then they take turns covering the weekends from Friday at 5pm to Monday at 8am. Their shifts look like this:

  • User 1 is on-call Tuesday and Wednesday from 5pm to 8am
  • User 2 is on-call Thursday and Friday from 5pm to 8am
  • User 1 is on-call Friday at 5pm to Saturday at 8am, and Saturday at 8am to Sunday at 8am
  • User 2 then is on-call Sunday at 8am to Monday 8am, and Monday 5pm to Tuesday 8am

Configuration

To set this schedule up, create four different layers, each with their own respective weekly rotations that fulfill one of the requirements listed above. Each layer has restrictions that fulfill the requirements listed above.

The handoff time should be the day and time that the first restriction begins. The effective date of change should be the first date that that layer's restriction begins on. This means that the date in Step 3 for each layer will be different.

  • User 1 is on-call Tuesday and Wednesday from 5pm to 8am.
  • User 2 is on-call Thursday and Friday from 5pm to 8am.
  • User 1 is on-call Friday at 5pm to Saturday at 8am, and Saturday at 8am to Sunday at 8am.
  • User 2 then is on-call Sunday at 8am to Monday 8am, and Monday 5pm to Tuesday 8am.

Final Schedule

Complex Split Shift Rotation

This example shows you how to create a 4-person rotation with time restricted where each shift is split by two users.

Schedule Requirements

These users are on-call between 00:00-10:00 with a shift length of 5 hours. After 5 hours, the next user comes on-call to cover the schedule until 10:00am.

Configuration

  1. Add four users to the schedule in Step 1.
  2. Click the Restrict on-call shifts to specific times option and restrict the schedule so that it is only active from 0:00-10:00.
  1. Create a custom rotation type with a shift length of 12 hours. To ensure that a different user is on-call for each half of the day, set the handoff time to be halfway between the shift (5:00).

Final Schedule

Complex Schedule with Restrictions

The following example is a complex schedule built in PagerDuty. Alice and Fred trade off the early morning shift, Bob takes the morning, and Carol takes the evening shift during a four day week. Dave and Eve take shifts on the elongated weekend:

  • Monday: Alice for 7 hours, then Bob for 6 hours, then Carol for 11 hours
  • Tuesday: Fred (7 hrs), Bob (6hrs), Carol (11hrs)
  • Wednesday: Alice (7hrs), Bob (6hrs), Carol (11 hrs)
  • Thursday: Fred (7 hrs), Bob (6hrs), Carol(11 hrs)
  • Friday: Dave (12 hrs), Eve(12 hrs)
  • Saturday: Dave(12 hrs), Eve (12 hrs)
  • Sunday: Dave (12 hrs), Eve (12 hrs)

Dave and Eve are easy to schedule because they have consistent shifts. Create a layer for each of the remaining users and restrict on-call duty to specific times of the week, based on their scheduled shifts.

The result looks like this:

You can use an overlapping technique to make the calendar simpler, if you put the original Dave and Eve layer on the bottom, you can simplify some of the restrictions. Bob and Carol now only need to be restricted by time of day, and so on.

Final Schedule

Create Primary and Secondary On-Call Schedules

Creating primary and secondary on-call schedules is helpful if the primary on-call user misses a notification. Setting up multiple levels of escalation on an escalation policy will ensure that a backup user responds to an incident when necessary.

In this example we are using a primary and secondary schedule only, but you may add more backup teams to an escalation policy as needed.

Create a Primary On-Call Schedule

  1. Go to Configuration → Schedules, and click New On-Call Schedule.
  2. Select Time Zone from the time zone drop-down menu.
  3. Enter schedule name in the name field.
  4. Complete steps 1-3 in the interface:
    1. Add Users from the drop-down list.
    2. Select the Rotation Type from the drop-down menu.
    3. Set the schedule Start Date and Time.
  5. Preview the on-call schedule and click Create Schedule.

Create a Secondary On-Call Schedule

  1. Repeat the steps from the primary on-call schedule set up.
  2. Add users in the secondary on-call order.
  3. Complete steps 2 and 3 in the interface and click Create Schedule. Note that the secondary on-call rotation is different from the primary on-call rotation.

Create an Escalation Policy

  1. Go to Configuration → Escalation Policies.
  2. Click New Escalation Policy.
  3. Enter Escalation Policy Name in the name field.
  4. Select Primary Schedule from the drop down list.
  5. Enter Escalation Time Out, if applicable.
  6. Click Add a new Escalation Rule.
  7. Select Secondary Schedule from the drop down list.
  8. Click Save.

After saving the escalation policy, it can now be added to any service on the service's edit page.

Follow-the-Sun Schedule

The "follow-the-sun" schedule is used for teams that might work internationally in different timezones and ensures full 24/7 coverage. This moderately complex schedule has three different sets of users on-call at different times of the day and the week. In this example we have a team in the U.S. and a team in India.

Schedule Requirements

In this schedule, we'll have three rotating shifts (or layers). The first rotation, for users in the U.S., will consist of User 1 and User 2. They will be on-call during weekdays from 8am - 8pm U.S. Pacific Time (PT) and they will rotate on a weekly basis.

The second rotation, for users in India, will consist of User 3 and User 4. They will be on-call during the weekdays starting at 8pm PT until 8am PT the next day.

The third rotating shift will cover the weekends, and all 4 users will be on it. The person on call during the weekend will cover the whole weekend and will be rotated on a weekly basis. For the sake of clarity, let's define weekend to start at 8pm PT on Friday until 8pm PT on Sunday.

Base Schedule

To create a schedule:

  1. Go to Configuration → Schedules, then click New On-Call Schedule.
  2. Enter a Name for the schedule and select a time zone. All times that you will select will be local to this time zone.

Team 1 (U.S.)

  1. Add the US users (users 1 and 2) by clicking on the Add User link Layer 1.
  2. Select weekly as the rotation type, set the handoff time to the beginning of your shift, and select on-call shift to specific times... checkbox to restrict on-call shifts for this team.
  1. When prompted, restrict on-call duty to specific times-of-the-day and enter 08:00 to 20:00 (8am - 8pm).
  1. Click Apply to apply time restrictions to the layer.

Note

You will not need to restrict this layer to weekdays as the weekend rotation in Layer 3 will replace weekend days on the final schedule. This follows the rule that the last layer created has precedence over the previous layer.

Team 2 (India)

  1. Click on the Add Another Layer button and add users 3 and 4 to Layer 2.
  2. Select weekly as the rotation type and enter the start of the shift as the handoff time.
  1. Restrict the times-of-the-day for the on-call shifts to be from 20:00 to 08:00 (8pm to 8am next day).
  1. Click Apply to apply time restrictions to the layer.

Team 3 (Weekend)

  1. Click on the Add Another Layer button and add all 4 users to Layer 3.
  2. Select weekly as the rotation type and set the handoff time to the beginning of the shift.
  1. Restrict the times-of-the-week for the on-call shifts to be from Friday 20:00 to Sunday 20:00 (8pm Friday to 8pm Sunday).
  1. Click Apply to apply time restrictions to the layer.

Final Schedule

In the upper right corner click Create Schedule to create the schedule.

Timeline View

Inverse Schedules on an Escalation Policy

If you have 2 or more users that rotate primary and secondary on-call shifts, then you will want to create two on-call schedules and add each of those schedules to a separate level of an escalation policy.

Schedule example articles:

Schedule Requirements

This schedule has 2 users on call. When User is the first point of escalation, User 2 is the backup, receiving all incidents that User 1 does not respond to. When User 2 is the first point of escalation, User 1 is the backup, receiving all incidents that User 2 does not respond to.

Configuration

You will need to create 2 on call schedules. One for the escalation policy level 1, and the another for escalation policy level 2.

Schedule 1:

Schedule 2:

Tip

You can use the Copy Schedule button to duplicate your schedule more quickly, then move users to be in the order you want them in. This option is under the gear icon, or on the right side of your schedule's details.

Escalation Policy

Go to Configuration → Escalation Policies and either create a New Escalation Policy, or edit an existing one. Add Schedule 1 to Level 1 of the escalation policy. Then add Schedule 2 to Level 2 of the escalation policy.

Schedule Users On-call Every Other Week

If you have a schedule where users are on-call every other week, you will need to create a layer within your schedule that reflects this type of rotation.

Schedule Requirements

This schedule has 4 users. 2 of users are on-call during the weekdays. The other 2 are on call during the weekend. They rotate on a weekly basis.

Configuration

Layer 1 will have my weekday rotations. User 1 and 2 will rotate on a weekly basis with a handoff time set for midnight on Monday.

Click Add Another Layer to create a second layer for weekend coverage. Layer 2 will has Users 3 and 4 on a weekly rotation. Their handoff time is Saturday at midnight. This rotation is restricted to the weekend.

Final Schedule

Weekday — Weekend Schedule

A weekend/weekday schedule is any schedule which requires one rotation for the working week and another for the weekend. In this case, we use two layers to capture the different groups of people and rotation types.

To get started, navigate to Configuration → Schedules and click New On-Call Schedule. Give your schedule a name.

Layer 1: Weekday

The first layer is the weekday layer. Each member of this layer is on-call from 0:00 Monday morning to 0:00 Saturday morning in a weekly rotation. The easiest way to schedule this is to create a basic weekly rotation where the handoff time is 0:00 with a weekly rotation.

Layer 2: Weekend

  1. To create the weekend schedule, click Add Another Layer below the previous one. The second layer will become the weekend layer.
  2. Add the layer members and set the rotation type as daily with a handoff time of 00:00 so users start at midnight.
  3. Because this layer is only on Saturday and Sunday, you will need to click the check box to Restrict on-call shifts to specific times. Restrict on-call shift to times-of-the-week from Saturday at 00:00 - Monday at 00:00 to create the weekend rotation.

Since the bottom layer will always take precedence over the top layer, the Final schedule shows that User 1 and 2 take turns being on call Monday-Friday on a weekly basis. User 3 will go on call Saturday at 00:00. User 4 will go on call Sunday at 00:00.

Schedule Examples