Skip to main content

Mark Synced Events as Out of Office

What it does: Writes every synced event as an Out of office event in the destination calendar, so your availability status reflects the correct kind of block.

Use case: When syncing OOO time from one calendar to another, you want the destination calendar to show "Out of office" rather than a plain busy block.

function gate(event) {
return { pass: true, transform: { type: 'outOfOffice' } };
}

You can also keep events that are already out of office as out of office, and leave everything else as normal events:

function gate(event) {
if (event.type === 'outOfOffice') {
return { pass: true, transform: { type: 'outOfOffice' } };
}
return true;
}

Provider Notes

  • Google: writes a true Out of office event — but only on the primary calendar of a Google Workspace account. On personal Google accounts (@gmail.com), secondary calendars, or for all-day events, it falls back to a busy event.
  • Outlook: shown as "Out of office" on any calendar — no Workspace requirement.
  • Apple/CalDAV and hosted calendars: fall back to a busy event.

Out of office cannot be combined with showAs: "free" — it is always busy.