# Connect Zapier

Zapier connects to Kalender Sync through the **MCP Client by Zapier** — as a regular **action step**. That's the big difference to n8n: you need **no AI model** in your Zap. The step calls a calendar tool directly, and the response comes back as individually mappable fields you can use in any following step — deterministic, no prompts, no model costs.

The address (MCP server URL) you will enter below is:

```
https://app.kalender-sync.de/mcp
```

:::note[Prerequisites]
- A Kalender Sync account with [connected calendars](https://docs.kalender-sync.de/en/getting-started/connect-first-calendar/) — reading and [creating events](https://docs.kalender-sync.de/en/ki-assistent/schreibzugriff/) work on every plan, including Free.
- A Zapier account. The **MCP Client by Zapier** is a beta integration by Zapier.
- An **access key** from the app (step 1).
:::

## 1. Create the access and key in Kalender Sync

In the app, open **AI assistant → Connect the assistant** and pick **Zapier**. You pick the calendars one by one and set the [detail level](https://docs.kalender-sync.de/en/ki-assistent/sichtbarkeit/) per calendar — calendars you don't share do not exist for Zapier.

**Create key** gives you your access key (a token starting with `ksa_`). It is **shown only once** — copy it straight into the Zapier connection (step 2). Treat it like a password.

## 2. Set up the connection in Zapier

1. Create a Zap and add **MCP Client by Zapier** as an action (event: **Run Tool**).
2. Create a new **connection**:
   - **Server URL:** `https://app.kalender-sync.de/mcp`
   - **Requires OAuth:** **No** — important! Zapier's OAuth path is not supported by us yet; the connection runs on the token.
   - **Bearer Token:** your `ksa_…` token from step 1 (the token itself, without a "Bearer" prefix).
3. Once the connection is up, the **Configure** step lists the available tools: `list_calendars`, `get_availability`, `search_events` and (with write access enabled) `create_event`, `update_event`, `delete_event`. Details for each tool: [tool reference](https://docs.kalender-sync.de/en/ki-assistent/tool-referenz/).

## 3. Test and map fields

Pick `list_calendars` as the tool and run the **test**. Under **Data out** you'll find the result twice:

- as raw text (`Response → Text`), and
- as **structured individual fields** (`Structured Content → Calendars → …`): name, provider, visibility, readability (`Readable`), writability (`Writable`), sync health — and most importantly the **calendar `Id`**.

You need the **calendar id** for all other tools: `get_availability`, `search_events` and `create_event` expect it as an argument. The easiest flow is to run `list_calendars` once in the test, copy the id of your target calendar and enter it in the following steps. For `create_event` the target calendar must have `Writable: true`.

Every call shows up in the [access log](https://docs.kalender-sync.de/en/ki-assistent/#what-stays-in-your-hands) on the **AI assistant** page.

## Zap ideas

**Event from a form — no AI involved.** Typeform/Google Forms/Jotform trigger → **Run Tool: `create_event`** with mapped fields (title from the form, start/end from the chosen slot, your calendar id). The classic "booking into the system" Zap — except the event lands in Google, Outlook or GMX, whichever calendar you shared. (Basic and up, calendar with [write access](https://docs.kalender-sync.de/en/ki-assistent/schreibzugriff/).)

**Free slots for new leads.** CRM trigger (new lead in HubSpot/Pipedrive) → **Run Tool: `get_availability`** for the next working days → a formatter step shapes the free windows → draft email "here are the times I can offer". Availability spans **all** shared calendars — no double bookings between work and personal calendars.

**Daily agenda to Slack.** Schedule by Zapier (weekdays at 7) → **Run Tool: `search_events`** for today → formatter → Slack message. No model anywhere: the `Structured Content` fields map straight into the message.

**Focus blocks before deadlines.** Trigger from your project tool (say, a new deadline in Asana) → **Run Tool: `create_event`** automatically books a focus block ahead of the deadline.

:::tip[When Zapier, when n8n?]
Fixed flows with clear fields (form → event, schedule → agenda) are simpler in Zapier — no model, no prompt maintenance, predictable costs. Free-form questions in natural language ("where do I have two hours in one block this week?") need an agent — that's where [n8n with an AI agent](https://docs.kalender-sync.de/en/ki-assistent/n8n/) shines.
:::

## Troubleshooting

- **Connection won't establish:** first check **Requires OAuth: No** — with "Yes" the connection currently fails with us. The MCP Client is beta at Zapier; if it still fails with a correct token, a second attempt a few minutes later often helps.
- **401 / "Unauthorized":** token mistyped, expired or [revoked](https://docs.kalender-sync.de/en/ki-assistent/#revoke-access). If in doubt, create a fresh token in the app and update the connection.
- **A calendar is missing from the result:** it isn't shared with this access — add it in the app under **AI assistant → Edit sharing**. Changes apply immediately, no new token needed.
- **`create_event` fails:** write access is [available on every plan](https://docs.kalender-sync.de/en/ki-assistent/schreibzugriff/), has to be enabled per calendar — and the target calendar id must belong to a calendar with write access.
- **Events show no titles:** that calendar is set to "busy only" — [visibility levels](https://docs.kalender-sync.de/en/ki-assistent/sichtbarkeit/) deliberately hide titles there.

## Security & control

The same rules as for every assistant access apply to Zapier: you decide [per calendar what is visible](https://docs.kalender-sync.de/en/ki-assistent/sichtbarkeit/), every query is logged (never the content of your events), and [revoking in Kalender Sync](https://docs.kalender-sync.de/en/ki-assistent/#revoke-access) kills the token instantly — regardless of what is stored in Zapier. The token belongs exclusively in the Zapier connection, never in notes, formulas or shared documents.