Configuration

Understand the configuration options for a schedule and their effects.

The configuration of a schedule controls how On-Call Optimizer will behaviour throughout its lifecycle and is broken into several sections as described below.

Basic Configuration

The basic configuration includes the following details:

  • Name
  • Time zone
  • List of members

For schedules linked to a external On-Call Product the basic configuration is not editable and will be automatically synchronized from the external schedule. However you can still modify whether or not each individual member is invited to share their calendar with the schedule.

For schedules not linked to an external product up to 20 members can be added. The name of a member must be an email address in order to invite the member to share and for the schedule to subsequently receive availability information from the member.

When adding a member by email address, On-Call Optimizer will by default to sending an invitation to join the schedule and share their calendar availabilty data. To prevent an invitation being sent, uncheck the box for the member’s row before clicking the Create or Update button at the bottom of the page.

The first and second columns of the members table will show the invitation and calendar availability state for each previously invited member of the schedule. A description of each state can be shown by hovering over the icon(s) for any particular member.

Shift Configuration

The shift configuration describes how On-Call Optimizer will generate future shifts for the schedule. Up to 10 shifts may be configured on a schedule. The available configuration fields for each shift are:

  • Day: Required. One of the normal days of the week (Mon-Sun) or one of the wildcard values Daily, Weekdays, Weekends.
  • Hour: Required. In 24-hour notation, 00 - 23.
  • Minute: Required. 00 - 59
  • Primary Assignee: Optional (but at least one assignee is required across all shifts).
  • Secondary Assignee: Optional.

Valid values for the assignee fields are either a static member of the schedule or one of the following keywords:

  • BEST_MEMBER to request automatic assignment.
  • LAST_PRIMARY to request assignment of the member who was primary in the last shift.
  • [Not assigned] to request that no member be assigned to this role in the shift.

The Day, Hour and Minute fields describe when each new shift will start. The Primary/Secondary Assignee fields describe who, or how On-Call Optimizer will choose to, assign to each shift.

The [Not assigned] keyword is typically used in the secondary field when only a single assignee is required for the shift, however it can also be used in the primary field when you wish to configure a schedule with non-continuous assignments (e.g. only create shifts for business hours Monday to Friday). The only restriction is that at least one of the shift configurations must contain an assignee - there’s no point asking On-Call Optimizer to manage a schedule to which no-one is every assigned!

Use to the example configs to further understand how shift configurations can be combined to achieve a variety of different schedule types and configurations, or for detailed information consult the extension logic, and assignment algorithm reference.

Auto Assignment Configuration

The auto assignment configuration (located in the right side-bar) controls how On-Call Optimizer will maintain and extend the schedule with new assigments through the following parameters:

  • Start Date: The date from which assignments will be created. Refer to the lifecycle docs for details on behaviour before the start date.
    • Valid values when changing this are between the present date and 90 days in the future.
  • Horizon Days: Defines how many days of horizon (minimum 1, maximum 90) are desired for the schedule: a new assignment will be created when the horizon created by the end of the last existing shift reaches this value.
  • Schedule Window Days: Controls how many days of shifts (minimum 1, maximum 90) will be assigned in each new assignment.
  • Require manual confirmation?: When set requires each new automatic assignment to be approved before the new shifts are confirmed in the schedule.

Disabling manual confirmation

New schedules are created with manual confirmation enabled, but it is recommended to disable manual confirmation once the schedule has reached steady state and members are comfortable with how On-Call Optimizer is operating.

The rationale for this choice is that when first adopting dynamic scheduling it is not uncommon for members to need a few iterations of assignments to establish the patterns and habits of providing availability information, and therefore the ability to review (and potentially re-generate) each automatic assignment before it is confirmed can be useful.

However, once team members are comfortable with the generated assignments and a pattern of usage with On-Call Optimizer has been established, the effort of reviewing each new assignment is harder to justify and delayed, or forgotten approval of an assignment risks reducing the horizon of the schedule below the desired value, or in the worst case causing the schedule to run out of assigned shifts!

Horizon and window sizing considerations

The schedule window should usally be kept above 20 days to ensure sufficient shifts to optimize over are present in each assignment.

It is also important not set the schedule window too large either to ensure availability information is available for all members for the time period covered by the window. Large schedule windows risk scheduling shifts beyond the date where where members are comfortable maintaining their calendar availability details in advance.

The default values for the horizon and schedule window are both 30 days which has been found to work well for many schedules in practice. This provides at lesat 1 month notice for each new shift that is assigned to a member and results in the available horizon for the schedule following a sawtooth pattern between 60 days immediately following each new assignment, and then gradually reducing to 30 days over time until the configured horizon is reached and the next assignment is triggered.

The horizon can be lowered as far as the team members are comfortable with without any adverse impact on the quality of assignments - the only impact of a low horizon is less notification for each member before a shift.

Cross-Schedule Availability

The cross-schedule availability configuration can be used to automatically generate availability information for a schedule based on the assignments that are present in another schedule.

The availabilty information generated by cross-schedule availability configuration will be used with the same weight and purposes as availability information that has been individually supplied by members from their calendars.

Configuring cross-schedule availability requires 3 pieces of information:

  • Action: The type of availabilty information to create (Block or Prefer).
  • Source Assignee: Which of the assignees from the source schedule to create availability information for.
  • Source Schedule: The schedule from which to source the assignments used to generate the availability information.

Configuring cross-schedule availability creates a dependency on the source schedule which requires that it has been assigned prior to the schedule that is depending on it. Attempts to assign new shifts for a schedule which has a cross-schedule availability dependency on a source schedule which does not yet have assignments covering the dates of the requested assignment will fail as the source shifts needed to generate the availability entries required by the configuration do not exist.

Therefore when configuring cross-schedule availability you need to double-check that the horizon and schedule window settings for the source schedule are appropriately set to ensure it is always assigned before the schedule depending on it.

Destinations

The destination configuration describes the set of integrations that should be updated with the assignments for the schedule. The available configuration parameters for a destination are:

  • Source Assignee: Which of the assignees from the schedule will be exported to the destination.
  • Automatic: When enabled, updated shifts are automatically pushed to the destination whenever new assignments are confirmed on the schedule. If disabled, updates to the destination must be manually triggered.

See the destinations topic for further details.


Last updated June 6, 2024