Docs › Automations
Connect other tools
Send what happens in Daykite to Zapier, Make, n8n or your own server — and let other tools add events to your calendar.
Experimental. Automations are still being tested. They may not run, or may give incomplete or wrong results — check anything important yourself, and tell us what goes wrong.
Automations act inside Daykite. To involve something else — a CRM, a spreadsheet, a team chat — go to Settings → Developer and open Connect other tools at the top. It works both ways:
- Daykite → your tools: a webhook sends a signed request to a web address the moment something happens.
- Your tools → Daykite: an API key lets another tool create events on your calendar.
Send things out with a recipe
Recipes are webhooks set up for a common job. Each one needs only the web address your automation tool gives you.
| Recipe | Sends |
|---|---|
| Post new and changed events to a channel | Events being created or changed |
| Mirror cancellations elsewhere | Cancelled events — one occurrence or a whole series |
| Send bookings to your CRM | New and cancelled bookings, with the guest's name, email and time |
| Log finished tasks | Tasks marked done |
| Track your routines | Routine periods ticked off or skipped |
- In your automation tool, create a step that catches a webhook and copy its address:
- Zapier: Webhooks by Zapier → Catch Hook
- Make: Webhooks → Custom webhook
- n8n: a Webhook node
- In Daykite, choose Set up on the recipe, paste the address into Endpoint URL, and choose Create webhook.
- Copy the signing secret shown — it's shown only once. (Zapier, Make and n8n don't need it.)
- Choose Send a test to check the connection, then build the rest of your scenario from the sample.
Open What gets sent under any recipe to see an example of the data.
Webhooks from an automation
A recipe sends everything of its kind. To send only some things, use an automation with a Send a webhook step — for example A booking is moved to a new time → Only Intro call → Send a webhook, or put an If step before it to send only the ones that answer yes.
Start an automation from another app
The other way round: an outside app starts one of your automations. Choose the trigger An outside app calls a webhook (under Other apps), then Make an address. Paste that address into Zapier (Webhooks by Zapier → POST), Make, n8n, a form's webhook setting, or your own code.
Every POST to it starts the automation, and the JSON it sends becomes placeholders:
{ "firstName": "Ana", "plan": "Pro", "company": { "name": "Acme" } }
gives {body.firstName}, {body.plan} and {body.company.name}. Lists of plain values are joined with commas; lists
of objects are numbered ({body.items.0.sku}). To act on only some calls, add an If step and type the field to
look at — If body.plan is Pro.
Keep the address secret. It works like a password: Daykite shows it once, keeps only a scrambled copy, and Make a new address stops the old one working at once.
Signing, retries and limits
| Signatures (optional) | Send X-Daykite-Signature: t=<unix time>,v1=<hex> — an HMAC-SHA256 of <t>.<raw body> with the signing secret. Tick Require a signature to refuse calls without one. Signed calls more than five minutes old are refused, so a captured call can't be replayed. |
| Retries | Send an Idempotency-Key header. A call with a key seen in the last day doesn't run again; Daykite answers with the first run. |
| Answers | 202 accepted · 200 duplicate · 401 bad signature · 404 unknown address · 409 automation switched off · 413 over 64 KB · 429 more than 60 calls a minute |
| Bodies | JSON, or a form (application/x-www-form-urlencoded) |
Each call shows under the automation's Runs, like any other trigger.
Add events from another tool
Create events from another tool turns a form submission, a signed contract or a support ticket into an event on your calendar.
- Choose Set up, then Create an API key. The key can only create events, and it's shown once — store it in your tool's secrets.
- Have your tool send a request like the one shown, with your key already filled in:
curl -X POST https://daykite.com/api/v1/events \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"spaceId": "YOUR_SPACE_ID",
"title": "Call with Priya",
"startsAt": "2026-09-17T14:00:00Z",
"endsAt": "2026-09-17T14:30:00Z",
"timeZone": "Europe/London"
}'
You can add guests, recurrenceRule or routinePeriodId — anything the app itself can do. The full reference is on
the Developers page.
Checking a request came from Daykite
If the webhook goes to your own server, check every request. Each one is a JSON POST with these headers:
| Header | What it is |
|---|---|
X-Calendar-Event |
What happened, like booking.created |
X-Calendar-Delivery |
A unique id — use it to ignore repeats |
X-Calendar-Timestamp |
When it was signed, in seconds since 1970 |
X-Calendar-Signature |
sha256= followed by an HMAC-SHA256 of timestamp.body, using the signing secret |
Reject a request whose signature doesn't match, or whose timestamp is more than five minutes old. Answer with any 2xx
status. If your server doesn't, Daykite tries again up to five more times, waiting longer each time.
Managing keys and webhooks
Every API key and webhook — with test sends, delivery status and rotation — lives in Settings → Developer.