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.
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.
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.
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.
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.
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 # Mon2023-07-24 17:00 member2@example.com # Mon 10:00 in partner-rotation America/Los_Angeles2023-07-25 09:00 person1@example.com # Tue2023-07-25 17:00 member1@example.com # Tue 10:00 in partner-rotation America/Los_Angeles2023-07-26 09:00 person3@example.com # Wed2023-07-26 17:00 member3@example.com # Wed 10:00 in partner-rotation America/Los_Angeles2023-07-27 09:00 person2@example.com # Thu2023-07-27 17:00 member2@example.com # Thu 10:00 in partner-rotation America/Los_Angeles2023-07-28 09:00 person3@example.com # Fri2023-07-28 17:00 member3@example.com # Fri 10:00 in partner-rotation America/Los_Angeles2023-07-29 17:00 member3@example.com # Sat 10:00 in partner-rotation America/Los_Angeles2023-07-30 17:00 member1@example.com # Sun 10:00 in partner-rotation America/Los_Angeles2023-07-31 09:00 person1@example.com # Mon2023-07-31 17:00 member2@example.com # Mon 10:00 in partner-rotation America/Los_Angeles
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.
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.
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:
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.
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 UTC2023-07-24 00:00 person2@example.com # Mon 10am SYD / Sun 5pm SFO / Mon 1am LON2023-07-24 08:00 london-member1@example.com # Mon 6pm SYD / Mon 1am SFO / Mon 9am LON2023-07-24 16:00 member2@example.com # Tue 2am SYD / Mon 9am SFO / Mon 5pm LON2023-07-25 00:00 person2@example.com # Tue 10am SYD / Mon 5pm SFO / Tue 1am LON2023-07-25 08:00 london-member1@example.com # Tue 6pm SYD / Tue 1am SFO / Tue 9am LON2023-07-25 16:00 member1@example.com # Wed 2am SYD / Tue 9am SFO / Tue 5pm LON2023-07-26 00:00 person2@example.com # Wed 10am SYD / Tue 5pm SFO / Wed 1am LON2023-07-26 08:00 london-member1@example.com # Wed 6pm SYD / Wed 1am SFO / Wed 9am LON2023-07-26 16:00 member3@example.com # Thu 2am SYD / Wed 9am SFO / Wed 5pm LON2023-07-27 00:00 person2@example.com # Thu 10am SYD / Wed 5pm SFO / Thu 1am LON2023-07-27 08:00 london-member1@example.com # Thu 6pm SYD / Thu 1am SFO / Thu 9am LON2023-07-27 16:00 member4@example.com # Fri 2am SYD / Thu 9am SFO / Thu 5pm LON2023-07-28 00:00 person2@example.com # Fri 10am SYD / Thu 5pm SFO / Fri 1am LON2023-07-28 08:00 london-member3@example.com # Fri 6pm SYD / Fri 1am SFO / Fri 9am LON2023-07-28 16:00 member3@example.com # Sat 2am SYD / Fri 9am SFO / Fri 5pm LON2023-07-29 05:00 london-member3@example.com # Sat 3pm SYD / Fri 10pm SFO / Sat 6am LON2023-07-29 17:00 member4@example.com # Sun 3am SYD / Sat 10am SFO / Sat 6pm LON2023-07-30 05:00 london-member3@example.com # Sun 3pm SYD / Sat 10pm SFO / Sun 6am LON2023-07-30 17:00 member1@example.com # Mon 3am SYD / Sun 10am SFO / Sat 6pm LON2023-07-31 00:00 person3@example.com # Mon 10am SYD / Sun 5pm SFO / Mon 1am LON