Documentation menu

Availability information

How calendar events become blocks and preferences for assigning shifts.

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 based on the combination of the event type and any matching tags. Events which do not match by type or tag are completely ignored.

Event types

Out of office events match without a tag, and create availability information with a block action unless a matching tag overrides it. An event counts as out of office when:

  • Google Calendar: it is an Out of office event.
  • Outlook: it shows as Away (called Out of Office in older versions of Outlook).
  • Calendar feed: it has Outlook’s out of office status (X-MICROSOFT-CDO-BUSYSTATUS:OOF), or its title starts with “Out of office:”, as in Google Calendar’s feeds.

Other events, including public holidays, don’t create availability information unless they are matched by tag. For example, add vacation or no-oncall to a holiday event to block it.

Tag matching

The presence of any of the following tags in the title or description of an event can be used to match the event (or override the action of an event matched by type) and cause availability information with the corresponding action to be created.

  • The presence of a tag on an event will always override the default action matched from the event type.
  • Where multiple tags are present on a single event, or multiple overlapping events specify conflicting tag actions, precedence is resolved in the following order: Block actions override prefer actions, prefer actions override allow actions.

Recognized tags to create an availability block

  • not oncall
  • no oncall
  • not-oncall
  • no-oncall
  • noc
  • ooo
  • vacation
  • leave

Recognized tags to create an availability preference

  • prefer oncall
  • prefer-oncall

Recognized tags to allow on-call with no preference (e.g. to override an out of office or holiday event)

  • allow oncall
  • allow-oncall

Availability weighting

An availability event counts for a shift when the two overlap by at least a minute. Each overlap adds a score that the optimizer uses when deciding whether to give that shift to that person.

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 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 few minutes contributes a very small score. For a 24-hour shift (1440 minutes), an overlap under 14 minutes contributes less than 1% of the base score.

If nothing else is in the way, even a short overlap blocks or prefers the whole shift. When people conflict with each other, or the schedule is already uneven, a longer overlap counts for more than a short one.

Availability lifecycle

Configured calendars are imported every hour. The import covers the next 90 days, or further if one of the member’s schedules assigns shifts further ahead than that (its horizon plus its window). If an event is removed or changed in the calendar, the imported availability is removed or updated to match.

Availability information used for an assignment is kept in that assignment’s history until the assignment itself expires per the organization’s retention settings. All other availability information is removed as soon as the event has ended.

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. To refresh straight away, click your avatar at the top right of the application, choose Calendars and click Refresh now next to the calendar.

You can’t delete an entry imported from a calendar on the Availability page: its bin icon is disabled. Hover over or click the icon to see why.

All future events sourced from a specific calendar

To remove all upcoming availability events sourced from a specific calendar, change the option for that calendar in the connection’s configuration to Ignore all events. You can also disconnect the calendar product entirely, which removes all availability imported from calendars on that connection.

Viewing your availability

You can see the availability that On-Call Optimizer holds for you in two places.

Home calendar

The Availability layer of your Home calendar shows your availability next to your shifts: block entries appear as grey Unavailable bars and prefer entries as green Prefer assignment bars. The layer is shown by default.

To show or hide it, click the calendar view button at the top right of the calendar (it shows the current view, e.g. 4 weeks) and tick or untick Availability. Your choice is remembered. The calendar legend (the ? icon next to Today) explains the colours used.

Schedule calendars can also show the availability of every member of the schedule, using their Member availability layer.

Availability page

Click your avatar at the top right of the application and choose Availability. The page lists your availability entries with their Start, End, Action and Source Calendar.

Working hours

The Working hours card at the bottom of the Availability page lets you describe your regular working hours. Click Add working hours, choose the Day pattern (e.g. Weekdays) and the start and end times, and click Add. To remove an entry, click its bin (Remove working hours) icon.

Automatic swap requests

If you are assigned a shift that overlaps with a block availability entry (for example, a holiday you add to your calendar after the shift was assigned), On-Call Optimizer can create a swap request for that shift for you.

To turn this on or off:

  1. Click your avatar at the top right of the application and choose Calendars.
  2. In the Swap requests section at the bottom of the page, switch the Automatically create swap requests for shifts overlapping availability blocks toggle.

The change is saved as soon as you switch the toggle.

More information

See assignment optimization for how availability is used when assigning shifts.

Last updated October 22, 2026