# preview_sync Behavior, inputs, outputs and permissions for preview_sync. Source: https://docs.getridian.com/developers/tools/preview_sync/ Language: en Reviewed: 2026-10-06 This reference is generated from the published tool contract. ## Behavior and boundaries Checks whether a one-way sync from one of the user's calendars into another could be created, without creating anything. It reports both calendars, whether it could be created, and every blocker it found — all of them, not just the first. It deliberately does not state how many events would be copied: that is not computed, so it is not claimed. A sync copies continuously, not once. A positive preview is not a reservation: the same checks run again when create_sync writes, and conditions can change in between. ## Permissions Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts. `sync:read` [Consent and boundaries](https://docs.getridian.com/developers/authentication/) ## Input ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "sourceCalendarId": { "type": "string", "minLength": 1 }, "targetCalendarId": { "type": "string", "minLength": 1 } }, "required": [ "sourceCalendarId", "targetCalendarId" ], "additionalProperties": false } ``` ## Output ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ok": { "type": "boolean", "const": true }, "source": { "type": "object", "properties": { "id": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] } }, "required": [ "id", "name" ], "additionalProperties": false }, "target": { "type": "object", "properties": { "id": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] } }, "required": [ "id", "name" ], "additionalProperties": false }, "direction": { "type": "string", "const": "one_way" }, "canCreate": { "type": "boolean" }, "blockers": { "type": "array", "items": { "type": "string" } }, "effect": { "type": "string", "const": "ongoing_copy_unknown_volume" } }, "required": [ "ok", "source", "target", "direction", "canCreate", "blockers", "effect" ], "additionalProperties": false } ``` ## Errors and retries Check the tool result for errors. Do not blindly retry writes after a timeout. Check the current resource or send status first. [Error handling](https://docs.getridian.com/developers/errors/)