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.
- Destination override removed notifications can be enabled to alert you when removal of an unrecognized change occurs.
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
- Open the schedule’s Integrations tab.
- Click Add new destination at the end of the tab row.
- In the Create new destination dialog, choose the Destination schedule in your on-call product, the Export assignee and the Synchronization mode.
- 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:
- Open the schedule’s Integrations tab.
- Find the destination in the table.
- Click the pencil icon (), titled Edit destination, in the Actions column.
- Choose the new Export assignee or Synchronization mode.
- 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.
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:
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:
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.