Availability Information

Availablity information enables shifts to be assigned around the existing commitments of each team member.

Availability information is created by matching events on the calendars that have been connected to your account and configured for import.

Each piece of availability information is described by:

  • The member to whom it relates.
  • A start time.
  • An end time.
  • An action (prefer, or block).
    • Block actions cause On-Call Optimizer to avoid assigning any shifts to the member between the start and end times.
    • Prefer actions allow members to hint to On-Call Optimizer that they would prefer to be assigned shifts between the start and end times.

Creating availability information

Availability information is created from each event found on a configured calendar after it passes initial filters and when either:

  • The event type indicates the event represents unavailability, OR
  • The title or description contains one of the recognized tags.

Events which do not match on type or tag are completely ignored.

Event types indicating unavailability

Events of the following types on a configured calendar will always be matched, and will result in availability information being created with a block action:

  • Out of office
  • Holiday

Events matched by type do not perform further tag matching. Events of a matching type will always result in availability information with a block action in On-Call Optimizer. It is not possible to create availability information with a prefer action from an event matched by type.

Tag matching

Events containing one or more of the following tags in the title or description, will result in availability information with the corresponding action being created.

Recognized tags to create an availability block

  • not oncall
  • no oncall
  • not-oncall
  • no-oncall
  • noc

Recognized tags to create an availability preference

  • prefer oncall
  • prefer-oncall

Block actions will always take precedence over prefer actions where multiple tags are found on a single event, or when multiple different events with different action tags are present with overlapping times.

Availability weighting

Availability events for each user are used in shift assignment when any minute of an availability event overlaps with any minute of the shift. Each event overlapping with a shift contributes a score to the optimization algorithm’s consideration of how optimal it would be to assign that shift to the user.

The score for each event is calculated starting from a base value determined by the action associated with the event, which is then weighted against how much of the of the overall shift duration the event overlaps with using a linear calculation:

  • An event that overlaps with every minute of a shift will have a final weighted score the same as the base score for the event action.
  • An event overlapping with half the minutes will result in a final weighted score that is 50% of the base score.
  • An event overlapping for only a small number of minutes might result in a final weighted score that contributes only a very small score. (e.g. for a 24-hour shift containing 1440 minutes, any overlap less than 14 minutes will contribute less than 1% of the base score).

The effect is that the assignment algorithm will block or prefer a shift for a user with availability information that overlaps any portion of the shift when no other constraints exist - even in the case of very short overlaps. However, when resolving overlaps between availability information between users, or addressing prior imbalances in the schedule, availability events that overlap more of a shift will have more influence than those that only overlap a small portion of the shift.

Availability lifecycle

New availability information is imported to On-Call Optimizer from configured calendars on a regular basis to cover the time period from the present time until 90 days in the future. Any previously imported availability information that has been removed or updated in the source calendar will also be removed or updated as necessary in On-Call Optimizer.

Availability information will expire and be removed from On-Call Optimizer’s primary store as soon as the end time of the event is in the past.

A copy of the availability information used in each assignment of shifts is stored in the logs providing the history of each assignment event until the assignment event expires from On-Call Optimizer based on retention duration of the organization’s plan.

Removing availability information

Individual events in the future

To remove availability information for a future time from On-Call Optimizer, update or remove the calendar event that the information is sourced from (e.g. remove the associated holiday or out of office event, or update the event title or description to remove any no-oncall or similar tags).

On-Call Optimizer will detect the changes on the next refresh, or you can trigger an immediate refresh on the main Calendars page.

All future events sourced from a specific calendar

To remove all upcoming availability events sourced from a specific calendar, change the event behaviour option for that calendar in the corresponding row of the configuration for that connection to Ignore all events. You can also disconnect a calendar product entirely from On-Call Optimizer which will remove all events that were imported from calendars provided by that connection.

More Information

For further details on how availability information is used in shift assignment, refer to the algorithm details documentation.


Last updated June 26, 2025