update_sync
Update an existing sync in place: rename it, pause/resume via enabled, change every propagation setting, change direction (and the one-way source designation), and add/remove calendars via the calendars end-state field — this mirrors the dashboard's full-page sync editor. settings.directionalSettings sets per-target/per-pair overrides (requires the directional-settings entitlement).
Removing a calendar that would delete synced events requires confirmDestructive:true on a re-call — the first call fails with wouldDelete so you can confirm. A one-way sync can have MULTIPLE source calendars (N sources fanning into M targets) — use oneWaySourceCalendarIds (an array) to designate the FULL source set, including a never-synced calendar via {accountId, providerCalendarId}. oneWaySourceCalendarId (singular) still works for a single source, back-compat — supplying BOTH fields is rejected (ONE_WAY_SOURCE_SET_INVALID). Omitting both preserves every currently-designated source.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| syncId | Yes | ||
| enabled | No | ||
| settings | No | ||
| calendars | No | ||
| direction | No | ||
| impactToken | No | ||
| confirmDestructive | No | ||
| oneWaySourceCalendarId | No | ||
| oneWaySourceCalendarIds | No |