Example configurations
Examples of how to configure Schedules
Using basic and nested schedules, it is possible to create almost any configuration of on-call schedule that you require as demonstrated by the examples below.
If none of these examples meet your needs, and you need help creating a schedule to match your requirements, please get in touch.
1 - Weekly Shift
Demonstrates a simple schedule changing between members once a week at a specified date and time.
Shift Configuration Entries
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Mon | 10 | 00 | BEST_MEMBER | [Not assigned] |
Sample Assignment
2023-07-24 10:00 person2@example.com
2023-07-31 10:00 person3@example.com
2023-08-07 10:00 person1@example.com
2023-08-14 10:00 person3@example.com
Assignment Details
This configuration results in On-Call Optimizer balancing team members using a single shift type covering 7 days.
While this is a common rotation pattern for many teams, the full benefits of On-Call Optimizer will not be experienced in this configuration due to the limited number of shifts available to be matched to team member constraints and preferences.
It is recommended that you consider migrating to one of the later examples in the configuration library which provide more flexibility to schedule around team member constraints and preferences.
Return to the list of other examples
2 - Daily Shift
Demonstrates a simple schedule changing between members at 9am every day.
Shift Configuration Entries
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Daily | 09 | 00 | BEST_MEMBER | [Not assigned] |
Sample Assignment
2023-07-24 10:00 member2@example.com # Mon
2023-07-25 10:00 member1@example.com # Tue
2023-07-26 10:00 member3@example.com # Wed
2023-07-27 10:00 member4@example.com # Thu
2023-07-28 10:00 member3@example.com # Fri
2023-07-29 10:00 member4@example.com # Sat
2023-07-30 10:00 member1@example.com # Sun
2023-07-31 10:00 member2@example.com # Mon
Assignment Details
This configuration results in On-Call Optimizer balancing team members using a single shift type covering each 24
hour period, with no differentiation made between weekdays and weekends in the balancing process.
Typically each member should be assigned similar numbers of shifts for each different day of the week by the default behaviour of On-Call Optimizer’s
algorithm, however if team members persistently block or prefer particular days (e.g. weekends) via their
availability information, other members may find themselves consistently assigned to
particular days of the week without any schedule imbalance arising.
Enforcing Weekday vs Weekend Balance
An alternative configuration that ensures all team members are assigned balanced weekday and weekend day shifts despite individual preferences would be:
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Weekdays | 09 | 00 | BEST_MEMBER | [Not assigned] |
Weekends | 09 | 00 | BEST_MEMBER | [Not assigned] |
This configuration results in On-Call Optimizer using two shift types for balancing purposes which contain:
- All 24-hour duration shifts starting Mon-Fri.
- All 24-hour duration shifts starting on Sat and Sun.
On-Call Optimizer aims for each member to have a balanced share of the shifts within each shift type.
Return to the list of other examples
3 - Business hours only shifts (schedule contains gaps)
Demonstrates a schedule assigning members only during business hours with gaps in between the shifts.
In situations where out-of-hours coverage is not required, you can create a schedule which only assigns members
during particular time periods, leaving gaps with no assignee(s) scheduled at all other times.
The following example demonstrates a shift configuration that will create shifts covering Mon-Fri 9am-5pm in the
schedule’s time zone. No shift or assignee will be available outside those times.
Shift Configuration Entries
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Weekdays | 09 | 00 | BEST_MEMBER | [Not assigned] |
Weekdays | 17 | 00 | [Not assigned] | [Not assigned] |
Sample Assignment
2023-07-24 09:00 person2@example.com # Mon
# 2023-07-24 17:00 NO_ASSIGNEE
2023-07-25 09:00 person1@example.com # Tue
# 2023-07-25 17:00 NO_ASSIGNEE
2023-07-26 09:00 person5@example.com # Wed
# 2023-07-26 17:00 NO_ASSIGNEE
2023-07-27 09:00 person4@example.com # Thu
# 2023-07-27 17:00 NO_ASSIGNEE
2023-07-28 09:00 person3@example.com # Fri
# 2023-07-28 17:00 NO_ASSIGNEE
2023-07-31 09:00 person5@example.com # Mon
# 2023-07-31 17:00 NO_ASSIGNEE
Assignment Details
This configuration results in On-Call Optimizer balancing team members using a single shift type covering each 8
hour period on Mon-Fri.
Return to the list of other examples
4 - Separate business and after-hours shifts (within team)
Demonstrates a schedule with different business and after-hours shifts every day.
A common motivation for using a schedule configuration of this type would be to avoid having any team
member scheduled for a consecutive 24hr period.
Shift Configuration Entries
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Daily | 09 | 00 | BEST_MEMBER | [Not assigned] |
Daily | 17 | 00 | BEST_MEMBER | [Not assigned] |
Sample Assignment
2023-07-24 09:00 person2@example.com # Mon
2023-07-24 17:00 person5@example.com
2023-07-25 09:00 person1@example.com # Tue
2023-07-25 17:00 person4@example.com
2023-07-26 09:00 person5@example.com # Wed
2023-07-26 17:00 person3@example.com
2023-07-27 09:00 person4@example.com # Thu
2023-07-27 17:00 person2@example.com
2023-07-28 09:00 person3@example.com # Fri
2023-07-28 17:00 person1@example.com
2023-07-29 09:00 person5@example.com # Sat
2023-07-29 17:00 person2@example.com
Assignment Details
This configuration results in On-Call Optimizer balancing team members using two shift types which contain:
- All 8-hour duration shifts starting 9am.
- All 16-hour duration shifts starting 5pm.
On-Call Optimizer aims for each member to have a balanced share of the shifts within each shift type.
Return to the list of other examples
5 - Separate business and after-hours shifts (delegated to a partner team)
Demonstrates a schedule with after-hours shifts handled by a different partner team.
This schedule configuration is commonly used when two teams in different time-zones are able to provide
coverage during different hours of the day.
Note how (unlike the basic after hours) example where every day of the week is treated the same,
this example also demonstrates the use of the Weekdays wildcard in the shift configuration to achieve the result of having Saturday
and Sunday also treated as after-hours and assigned to the partner team for the full 48-hour period.
Shift Configuration Entries
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Weekdays | 09 | 00 | BEST_MEMBER | [Not assigned] |
Weekdays | 17 | 00 | partner-rotation | [Not assigned] |
Sample Assignment for the main schedule
2023-07-24 09:00 person2@example.com # Mon
2023-07-24 17:00 partner-rotation
2023-07-25 09:00 person1@example.com # Tue
2023-07-25 17:00 partner-rotation
2023-07-26 09:00 person3@example.com # Wed
2023-07-26 17:00 partner-rotation
2023-07-27 09:00 person2@example.com # Thu
2023-07-27 17:00 partner-rotation
2023-07-28 09:00 person3@example.com # Fri
2023-07-28 17:00 partner-rotation
2023-07-31 09:00 person1@example.com # Mon
Assignment Details
This configuration results in On-Call Optimizer balancing team members in a very similar way to the business hours example,
using a single shift type covering each 8 hour period on Mon-Fri.
There are two additional shift types (16-hour overnight shifts, and 64-hour weekend shifts) assigned to the partner team in the main schedule, however
as explained below, these shift types are not used for balance and assignment purposes.
Partner Team Schedule
The shifts delegated to the partner team will be assigned in the final output of this schedule by referencing the existing assignments of the referenced partner
schedule which are unchanged by the fact that it has been referenced from this schedule. This allows the partner team to use any rotation configuration they like,
independently of any scheduling choices made in the the main schedule.
In this example, the partner team is using the Simple Daily Rotation configuration which assigns a single
shift per day, and therefore will continue to aim to assign a balanced number of daily shifts to each member.
Fully Rendered Schedule
When viewed in the On-Call Optimizer web UI, or exported to an on-call products the “fully rendered” schedule combining the above two rotations will be as follows:
2023-07-24 09:00 person2@example.com # Mon
2023-07-24 17:00 member2@example.com # Mon 10:00 in partner-rotation America/Los_Angeles
2023-07-25 09:00 person1@example.com # Tue
2023-07-25 17:00 member1@example.com # Tue 10:00 in partner-rotation America/Los_Angeles
2023-07-26 09:00 person3@example.com # Wed
2023-07-26 17:00 member3@example.com # Wed 10:00 in partner-rotation America/Los_Angeles
2023-07-27 09:00 person2@example.com # Thu
2023-07-27 17:00 member2@example.com # Thu 10:00 in partner-rotation America/Los_Angeles
2023-07-28 09:00 person3@example.com # Fri
2023-07-28 17:00 member3@example.com # Fri 10:00 in partner-rotation America/Los_Angeles
2023-07-29 17:00 member3@example.com # Sat 10:00 in partner-rotation America/Los_Angeles
2023-07-30 17:00 member1@example.com # Sun 10:00 in partner-rotation America/Los_Angeles
2023-07-31 09:00 person1@example.com # Mon
2023-07-31 17:00 member2@example.com # Mon 10:00 in partner-rotation America/Los_Angeles
Return to the list of other examples
6 - Follow the sun (2 locations)
Demonstrates a schedule balancing two 12-hour shifts between a UK and US west coast pair of teams.
This schedule configuration enables each team to have the majority of their on-call hours within typical day/waking hours.
It involves 3 separate schedules, one for each of the local teams and a third schedule which is then used to co-ordinate and
join the local schedules together.
Main Schedule Shift Configuration Entries
The main schedule is configured in the America/Los_Angeles time zone and uses a simple shift configuration pattern that
rotates between a nested schedule for each team at the appropriate time each day.
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Weekdays | 10 | 00 | sfo-team | [Not assigned] |
Weekdays | 22 | 00 | lon-team | [Not assigned] |
Sample shifts
2023-07-24 10:00 sfo-team
2023-07-24 22:00 lon-team
2023-07-25 10:00 sfo-team
2023-07-25 22:00 lon-team
2023-07-26 10:00 sfo-team
2023-07-26 22:00 lon-team
2023-07-27 10:00 sfo-team
2023-07-27 22:00 lon-team
2023-07-28 10:00 sfo-team
2023-07-28 22:00 lon-team
2023-07-31 10:00 sfo-team
London Team Shift Configuration Entries
The London team’s schedule is configured in the GMT time zone and the team has chosen to schedule themselves using a
4 day/3 day split across the week.
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Mon | 06 | 00 | BEST_MEMBER | [Not assigned] |
Fri | 06 | 00 | BEST_MEMBER | [Not assigned] |
The 06:00 UTC shift start time is selected to match the 22:00 America/Los_Angeles shift start time in the main schedule.
Sample shifts
2023-07-24 06:00 london-member1@example.com # Mon
2023-07-28 06:00 london-member3@example.com # Fri
2023-07-31 06:00 london-member2@example.com # Mon
2023-08-04 06:00 london-member4@example.com # Fri
2023-08-07 06:00 london-member3@example.com # Mon
2023-08-11 06:00 london-member1@example.com # Fri
2023-08-14 06:00 london-member4@example.com # Mon
2023-08-18 06:00 london-member2@example.com # Fri
US Team
The US team uses a simple daily rotation (specifically the Simple Daily Rotation example ).
Sample shifts
2023-07-24 10:00 member2@example.com # Mon
2023-07-25 10:00 member1@example.com # Tue
2023-07-26 10:00 member3@example.com # Wed
2023-07-27 10:00 member4@example.com # Thu
2023-07-28 10:00 member3@example.com # Fri
2023-07-29 10:00 member4@example.com # Sat
2023-07-30 10:00 member1@example.com # Sun
2023-07-31 10:00 member2@example.com # Mon
Fully Rendered Schedule
When viewed in the On-Call Optimizer web UI, or exported to an on-call products the “fully rendered” schedule combining combining all of the above configuration will result in the following shifts:
# Rendered in UTC
2023-07-24 05:00 london-member1@example.com # Mon 6am LON / 10pm Sun SFO
2023-07-24 17:00 member2@example.com # Mon 6pm LON / 10am Mon SFO
2023-07-25 05:00 london-member1@example.com # Tue 6am LON / 10pm Mon SFO
2023-07-25 17:00 member1@example.com # Tue 6pm LON / 10am Tue SFO
2023-07-26 05:00 london-member1@example.com # Wed 6am LON / 10pm Tue SFO
2023-07-26 17:00 member3@example.com # Wed 6pm LON / 10am Wed SFO
2023-07-27 05:00 london-member1@example.com # Thu 6am LON / 10pm Wed SFO
2023-07-27 17:00 member4@example.com # Thu 6pm LON / 10am Thu SFO
2023-07-28 05:00 london-member3@example.com # Fri 6am LON / 10pm Thu SFO
2023-07-28 17:00 member3@example.com # Fri 6pm LON / 10am Fri SFO
2023-07-29 05:00 london-member3@example.com # Sat 6am LON / 10pm Fri SFO
2023-07-29 17:00 member4@example.com # Sat 6pm LON / 10am Sat SFO
2023-07-30 05:00 london-member3@example.com # Sun 6am LON / 10pm Sat SFO
2023-07-30 17:00 member1@example.com # Sun 6pm LON / 10am Sun SFO
2023-07-31 05:00 london-member2@example.com # Mon 6am LON / 10pm Sun SFO
2023-07-31 17:00 member2@example.com # Mon 6pm LON / 10am Mon SFO
Return to the list of other examples
7 - Follow the sun (multiple locations)
Demonstrates a schedule balancing three 8-hour shifts that follow the sun around the globe.
In this example there are 3 teams, one in London, one in Sydney and one in San Francisco, who work together to provide an overall
on-call schedule. The London and San Francisco teams are equally sized and participate every day of the week, while the Sydney
team with fewer people only participates during their week days, with the weekend shifts covered only from London and San Francisco.
As with the more basic follow the sun example this example is constructed
with one schedule per team, combined with a fourth co-ordinating schedule that is used to provide the overall schedule.
Main Schedule Shift Configuration Entries
The main schedule is configured in the Australia/Sydney time zone in order to easily highlight the shift start times that relate to weekend
coverage being provded in London and San Francisco.
The first 3 shift configurations follow a simple repeating pattern for each of the weekdays, while the final 3 shift configuration entries
deal with the slightly more complex set of shifts required to implement the different shift lengths for London and San Francisco that are
required to provide the desired weekend coverage.
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Weekdays | 10 | 00 | syd-team | [Not assigned] |
Weekdays | 18 | 00 | lon-team | [Not assigned] |
Weekdays | 02 | 00 | sfo-team | [Not assigned] |
Sat | 10 | 02 | sfo-team | [Not assigned] |
Sun,Mon | 03 | 00 | sfo-team | [Not assigned] |
Weekends | 15 | 00 | lon-team | [Not assigned] |
Sample shifts
2023-07-24 03:00 sfo-team
2023-07-24 10:00 syd-team
2023-07-24 18:00 lon-team
2023-07-25 02:00 sfo-team
2023-07-25 10:00 syd-team
2023-07-25 18:00 lon-team
2023-07-26 02:00 sfo-team
2023-07-26 10:00 syd-team
2023-07-26 18:00 lon-team
2023-07-27 02:00 sfo-team
2023-07-27 10:00 syd-team
2023-07-27 18:00 lon-team
2023-07-28 02:00 sfo-team
2023-07-28 10:00 syd-team
2023-07-28 18:00 lon-team
2023-07-29 02:00 sfo-team
2023-07-29 15:00 lon-team
2023-07-30 03:00 sfo-team
2023-07-30 15:00 lon-team
2023-07-31 03:00 sfo-team
2023-07-31 10:00 syd-team
2023-07-31 18:00 lon-team
London Team Shift Configuration Entries
The London team schedule (configured in the GMT time zone) uses the same 4 day/3 day split as seen in the previous follow the sun example.
Day: | Hour: | Minute: | Primary: | Secondary: |
---|
Mon | 06 | 00 | BEST_MEMBER | [Not assigned] |
Fri | 06 | 00 | BEST_MEMBER | [Not assigned] |
The 06:00 UTC shift start time is selected to match the 22:00 America/Los_Angeles shift start time in the main schedule.
Sample shifts
2023-07-24 06:00 london-member1@example.com # Mon
2023-07-28 06:00 london-member3@example.com # Fri
2023-07-31 06:00 london-member2@example.com # Mon
2023-08-04 06:00 london-member4@example.com # Fri
2023-08-07 06:00 london-member3@example.com # Mon
2023-08-11 06:00 london-member1@example.com # Fri
2023-08-14 06:00 london-member4@example.com # Mon
2023-08-18 06:00 london-member2@example.com # Fri
US Team
The US team uses a simple daily rotation (specifically the Simple Daily Rotation example ).
Sample shifts
2023-07-24 10:00 member2@example.com # Mon
2023-07-25 10:00 member1@example.com # Tue
2023-07-26 10:00 member3@example.com # Wed
2023-07-27 10:00 member4@example.com # Thu
2023-07-28 10:00 member3@example.com # Fri
2023-07-29 10:00 member4@example.com # Sat
2023-07-30 10:00 member1@example.com # Sun
2023-07-31 10:00 member2@example.com # Mon
Sydney Team
The small Sydney team uses basic week long rotations.
2023-07-24 10:00 person2@example.com
2023-07-31 10:00 person3@example.com
2023-08-07 10:00 person1@example.com
2023-08-14 10:00 person3@example.com
Fully Rendered Schedule
When viewed in the On-Call Optimizer web UI, or exported to an on-call products the “fully rendered” schedule combining all the individual shifts will be as follows:
# Rendered in UTC
2023-07-24 00:00 person2@example.com # Mon 10am SYD / Sun 5pm SFO / Mon 1am LON
2023-07-24 08:00 london-member1@example.com # Mon 6pm SYD / Mon 1am SFO / Mon 9am LON
2023-07-24 16:00 member2@example.com # Tue 2am SYD / Mon 9am SFO / Mon 5pm LON
2023-07-25 00:00 person2@example.com # Tue 10am SYD / Mon 5pm SFO / Tue 1am LON
2023-07-25 08:00 london-member1@example.com # Tue 6pm SYD / Tue 1am SFO / Tue 9am LON
2023-07-25 16:00 member1@example.com # Wed 2am SYD / Tue 9am SFO / Tue 5pm LON
2023-07-26 00:00 person2@example.com # Wed 10am SYD / Tue 5pm SFO / Wed 1am LON
2023-07-26 08:00 london-member1@example.com # Wed 6pm SYD / Wed 1am SFO / Wed 9am LON
2023-07-26 16:00 member3@example.com # Thu 2am SYD / Wed 9am SFO / Wed 5pm LON
2023-07-27 00:00 person2@example.com # Thu 10am SYD / Wed 5pm SFO / Thu 1am LON
2023-07-27 08:00 london-member1@example.com # Thu 6pm SYD / Thu 1am SFO / Thu 9am LON
2023-07-27 16:00 member4@example.com # Fri 2am SYD / Thu 9am SFO / Thu 5pm LON
2023-07-28 00:00 person2@example.com # Fri 10am SYD / Thu 5pm SFO / Fri 1am LON
2023-07-28 08:00 london-member3@example.com # Fri 6pm SYD / Fri 1am SFO / Fri 9am LON
2023-07-28 16:00 member3@example.com # Sat 2am SYD / Fri 9am SFO / Fri 5pm LON
2023-07-29 05:00 london-member3@example.com # Sat 3pm SYD / Fri 10pm SFO / Sat 6am LON
2023-07-29 17:00 member4@example.com # Sun 3am SYD / Sat 10am SFO / Sat 6pm LON
2023-07-30 05:00 london-member3@example.com # Sun 3pm SYD / Sat 10pm SFO / Sun 6am LON
2023-07-30 17:00 member1@example.com # Mon 3am SYD / Sun 10am SFO / Sat 6pm LON
2023-07-31 00:00 person3@example.com # Mon 10am SYD / Sun 5pm SFO / Mon 1am LON
Return to the list of other examples