# How sync works

Every sync works on the same principle: busy times flow from one or more **source calendars** into a **target calendar**. There, Kalender Sync creates its own **blocker events** — and manages exclusively those.

<Frame src="/images/app/en/dashboard.webp" alt="Kalender Sync dashboard with connected calendars and active syncs" caption="The dashboard: connected calendars on top, the active syncs below." />

## Always one direction

- Every sync transfers from **source → target**. If two calendars should block **each other**, set it up [in both directions](https://docs.kalender-sync.de/en/sharings/self-sync/).
- Your **original events are never modified** — no matter what. Kalender Sync only touches its own blockers.
- Event **moved** in the source? The blocker moves along. **Deleted**? The blocker disappears.

## How fast is sync?

| Source | Mechanism | Speed |
| --- | --- | --- |
| Google, Microsoft | Provider pushes changes (webhooks, Basic and up) | **almost instant** — typically under a minute |
| Apple iCloud, GMX, WEB.DE, mailbox.org, KSuite, iCal feeds | Regular polling | **every 5 minutes** |

On the **Free plan**, syncs run on a **30-minute interval** instead of real-time webhooks — real-time is included from Basic ([Plans & limits](https://docs.kalender-sync.de/en/account-billing/plans-limits/)).

On top of that there's a **safety net**: every few hours Kalender Sync fully reconciles each sync, catching changes that slipped through (e.g. a lost provider notification). So if an event seems missing — it often resolves itself on the next reconciliation. If not: [Event missing, duplicated or late](https://docs.kalender-sync.de/en/troubleshooting/event-missing-or-duplicate/).

The **initial sync** after setup processes the backlog and can take a few minutes (up to half an hour for large calendars) — you'll receive an email once it's done.

## What gets synced — and what doesn't

- Events within the [sync window](https://docs.kalender-sync.de/en/sync/sync-window/): **3 months into the past; into the future depending on your plan: 6 months (Free & Basic) or 18 months (Professional)**.
- How much content arrives is controlled by the [visibility level](https://docs.kalender-sync.de/en/sync/visibility-levels/) — from "busy only" to full details.
- **Never transferred**: attendee lists, email addresses, organisers, accept/decline responses. [All-day events](https://docs.kalender-sync.de/en/sync/all-day-events/) are treated as free by default.

## Protection against loops and duplicates

Kalender Sync marks every blocker it creates and **never syncs it onward** — no ping-pong between linked calendars and no duplicates, not even in [chained setups](https://docs.kalender-sync.de/en/sync/multi-account-setups/) across three or more calendars.

## On pausing and ending

- **Paused**: sync stops, existing blockers stay. On resume, the state is reconciled.
- **Ended**: all blockers created by Kalender Sync in the target are **cleaned up automatically**. Details: [Pause or end a sync](https://docs.kalender-sync.de/en/sharings/pause-end/).