Documentation menu

Destinations

Configure import and export of shifts with external systems.

A schedule can export its shifts to one or more destinations: schedules in an on-call product that On-Call Optimizer keeps up to date with the schedule’s assigned shifts. Each destination usually exports one assignee role (Primary or Secondary).

Synchronization modes

On-Call Optimizer keeps each destination up to date by synchronizing it: it imports the shifts the destination currently holds, compares them with the schedule, and exports any changes needed. It synchronizes when an assignment is confirmed, when the destination’s settings change, at least hourly, and whenever you click Synchronize. Every synchronization also imports the destination’s shift history up to the schedule’s first shift.

The synchronization mode controls what a synchronization may change.

Authoritative (default)

On-Call Optimizer is the source of truth for the schedule and makes necessary changes to the destination to align it with the schedule in On-Call Optimizer.

  • Newly assigned shifts are automatically exported to the destination as soon as they are confirmed in On-Call Optimizer.
  • When a synchronization finds differences between the destination and On-Call Optimizer, the shifts from On-Call Optimizer are exported again, overwriting any changes made in the destination.

Bidirectional

On-Call Optimizer is the source of truth for all assignments made directly in On-Call Optimizer but will also import changes that are made to previously exported shifts back into the On-Call Optimizer schedule from the destination.

  • Newly assigned shifts are automatically exported to the destination as soon as they are confirmed in On-Call Optimizer.
  • Changes to previously exported shifts at the destination are imported back into On-Call Optimizer at the next synchronization.
    • On-Call Optimizer will only check for changes to shifts within the horizon of the schedule. Changes beyond the horizon, will be overwritten by the next scheduled assignment when it is confirmed.
    • In the case of conflicting changes made in both the destination and On-Call Optimizer within the same window of time (e.g. between two synchronizations), the On-Call Optimizer assignment will overwrite any change made directly in the destination.

Manual export

On-Call Optimizer is the source of truth for the schedule (like authoritative mode), but only changes the destination when you click Synchronize and confirm.

  • Automatic synchronizations only work out what would change: newly assigned shifts, and any differences found in the destination, are listed as pending changes.
  • Nothing is exported until you click Synchronize on the destination and confirm the pending changes.
  • An extra Import action fetches the destination’s current shifts and updates the pending changes, without exporting anything.

Configuration

Destinations are managed on the schedule’s Integrations tab: Schedules → schedule → Integrations. The tab lists the schedule’s destinations, with their Export assignee, Mode, Current state and when they were Last synchronized. The schedule’s calendar feed panel is below the table.

Schedules created by copying an existing schedule already have the copied schedule as a destination, which you can edit or remove. (If another On-Call Optimizer schedule already exports to that schedule, no destination is added.)

Each destination has two settings:

  • Export assignee: which of the schedule’s assignees is exported to the destination.
  • Synchronization mode (the table’s Mode column): what a synchronization may change. New destinations use Authoritative unless you choose otherwise.

The on-call card in the schedule header also shows the destination and its current status.

Adding a destination

  1. Open the schedule’s Integrations tab.
  2. Click Add new destination at the end of the tab row.
  3. In the Create new destination dialog, choose the Destination schedule in your on-call product, the Export assignee and the Synchronization mode.
  4. Click Create. Unless you chose manual export, the first synchronization starts straight away.

You need an on-call product connected to your organization before you can add a destination.

Updating destination configuration

To change the export assignee or synchronization mode of a destination:

  1. Open the schedule’s Integrations tab.
  2. Find the destination in the table.
  3. Click the pencil icon (), titled Edit destination, in the Actions column.
  4. Choose the new Export assignee or Synchronization mode.
  5. Click Update destination.

If the new synchronization mode will export pending changes straight away, the dialog lists them and asks you to confirm.

Removing a destination

Click the trash icon (Delete destination) in the destination’s row, then click Delete destination to confirm. This can’t be undone. Shifts already exported stay in the on-call product schedule.

Notifications

Status change

Schedule admins are notified when a destination changes to a state that needs their attention, and again when it is back up to date.

  • A destination that stays out of date re-notifies schedule admins every 24 hours.
  • A destination with pending changes re-notifies schedule admins once a week.

After a manual action, a status change is notified only if the new state lasts 30 minutes. This avoids extra notifications while you are still making changes.

All schedule admins receive destination status change notifications by default. Each user can turn off the Destination status change type in their notification preferences.

Destination override removed

In authoritative mode, On-Call Optimizer overwrites shifts in the destination that don’t match the confirmed schedule. If the overwritten shift isn’t one that On-Call Optimizer exported earlier, someone may have changed the destination by hand by mistake. An optional notification warns you when this happens.

The notification goes to all schedule admins and to the member the removed override was assigned to.

On-Call Optimizer doesn’t notify you when it removes shifts that it added itself, because of a planned schedule change.

These notifications are off by default. To turn them on, enable the Destination override removed type in your notification preferences.

Status

The status of each destination is checked regularly and shown as one of these states. When a destination isn’t up to date, the Integrations tab shows a dot in the status colour. Hover over the dot to see the status.

Up to date:
On-Call Optimizer has checked that the shifts in the destination match the confirmed schedule.
Pending changes:
There are changes to shifts more than 3 days away that haven't been exported yet.
Urgent changes:
Shifts in the next 3 days differ between On-Call Optimizer and the destination.
Importing...:
On-Call Optimizer is fetching the latest details from the destination.
Synchronizing...:
On-Call Optimizer is exporting shifts to the destination.
Missing assignee:
One or more assigned members couldn't be matched to a user in the destination, so their shifts can't be exported.
Error:
The last import or export failed with an error.
Unknown:
On-Call Optimizer hasn't been able to check the destination for over an hour.

Status details

Click a destination’s name on the Integrations tab to open its page. The header shows the schedule and destination ("Schedule / Export to product: destination schedule"), the exported role, and the current status with how long ago it was checked.

The page has two tabs, plus actions at the end of the tab row:

  • State: the shifts currently in the destination and any changes waiting to be exported.
  • History: past synchronizations. See Export status.
  • Synchronize (): synchronize now. In manual export mode, a dialog lists the pending changes first, and an Import () action is also shown (see Manual export).

The shift calendars use these colours:

Exported:
Shifts that are confirmed present in the destination.
Additions:
Shifts planned (State tab) or successfully added (History tab) to the destination.
Removals:
Shifts planned (State tab) or successfully removed (History tab) from the destination.
Skipped:
Shifts not exported because they failed validation, for example no matching user account in the destination.
Missed:
Shifts that should have been exported but couldn't be planned or completed because of an unexpected error.

Error messages about skipped or missed shifts are shown above the shifts when available.

Export status

The History tab lists past synchronizations with When, Trigger, Result and Summary. The trigger is Assignment confirmed, Manual (you clicked Synchronize or Import), Synchronize (the regular check), Cover lost (another schedule exporting to the same on-call product schedule removed shifts this destination covered) or System. An Import only badge marks an import that exported nothing. By default only events with changes are listed; click all events to see every event. Click an event’s summary to see which shifts were added or removed; the detail page uses the same colours as above.

Each export reports one of these results:

Success
All shifts were exported to the destination.
Partial success
At least one shift was exported, but at least one other shift was skipped or missed.
Error
An unexpected error stopped the operation.

Error messages for partial success or error results are shown above the shifts when available.

Supported destinations

  • Any of the listed on-call products
  • ICS (iCalendar) feeds: a subscribable feed URL for any schedule (on its Integrations tab) or for your own shifts (on your Profile). See ICS feeds.
Last updated October 22, 2026