Daykite

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
  1. 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
  2. In Daykite, choose Set up on the recipe, paste the address into Endpoint URL, and choose Create webhook.
  3. Copy the signing secret shown — it's shown only once. (Zapier, Make and n8n don't need it.)
  4. 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.

  1. 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.
  2. 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.