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.
Related Recipes
- Set Events as Free -- Mark all synced events as free/available
- Redact Event Titles -- Replace titles with generic text for privacy