Create a calendar sync
create_syncCreates a sync between two of the user's own calendars — one-way (source into target) or two-way (both directions, one sync) — after the user confirmed this specific source, target, direction and detail level(s) in the chat. Call preview_sync first and tell the user what it reports. The same checks run again here, so a preview does not guarantee success.
Pass a stable request_id: the same id with the same parameters returns the same sync instead of creating a second one, and the same id with different parameters fails rather than silently creating another.
The result is created_pending_processing: the sync exists and copying starts in the background; nothing is synchronised yet, so the target may look empty for a few minutes. The sync then keeps running: it creates, updates and removes its own copies in the target as source events change. It keeps running even after this assistant's access is revoked.
For two-way, both calendars must be shared with this access and released for syncs; each direction has its own detail level (reverse_detail_level, default detail_level), and both legs are created together or not at all.
Syncs with other people, changing rules and reversing direction are not available here — that happens in the Kalender Sync app, linked as syncs_url. Deleting works with preview_delete_sync and delete_sync. Costs no credits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | Default one_way. Ask the user. | |
| request_id | Yes | Stable id for this request; reuse it when retrying the same call | |
| detail_level | Yes | How much of each event reaches the target: busy_only (a blocker without details), title_and_time, or full_details. Ask the user; do not assume. At most max_detail_level from preview_sync. | |
| source_calendar_id | Yes | Calendar whose events are copied | |
| target_calendar_id | Yes | Calendar the copies are written into | |
| reverse_detail_level | No | Two-way only: detail level from target back into source. At most max_reverse_detail_level. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| legs | Yes | ||
| status | Yes | ||
| replayed | Yes | ||
| direction | Yes | ||
| syncs_url | Yes |