n8n integration

AddCal and n8n,
no custom node needed.

AddCal is a plain REST API, so the two nodes n8n already ships with do the whole job. Use HTTP Request to create events from any workflow, and Webhook to catch RSVPs the moment they land.

Works on n8n Cloud and self-hosted No community node to install
Step 1

Create an API token

In AddCal, open Account then API Tokens, and create a token. Copy it straight away, it is only shown once.

In n8n, add a Header Auth credential and use it for every AddCal node. Storing it as a credential keeps the token out of your workflow JSON when you export or share it.

n8n credential: Header Auth
NameAuthorization
ValueBearer YOUR_API_TOKEN
Step 2

Create events from n8n

Add an HTTP Request node wherever you want an event created. Point it at the events endpoint, attach the credential from step 1, and map your fields.

n8n node: HTTP Request
MethodPOST
URLhttps://addcal.co/api/events
AuthenticationGeneric Credential Type, then Header Auth
Send BodyOn, using JSON

Example body

{
  "title": "Demo call with {{ $json.company }}",
  "description": "<p>Booked from the website form.</p>",
  "location": "https://zoom.us/j/123456789",
  "date_start": "2026-08-12T14:00:00",
  "date_end": "2026-08-12T15:00:00",
  "timezone": "Australia/Melbourne",
  "calendar_name": "Sales Demos",
  "has_rsvp": true,
  "reminder_before": 30
}

Anything in double braces is an n8n expression, so you can pull values straight from the previous node.

Fields you can send

Field Notes
titlereqEvent title. Max 255 characters.
date_startreqStart time. ISO 8601 or "2026-08-12 14:00:00".
date_endEnd time. Defaults to one hour after the start.
timezoneIANA timezone. Defaults to the calendar timezone.
calendar_nameFinds or creates a calendar by name. Use calendar_uid instead if you already have one.
descriptionEvent description. HTML is allowed.
locationPhysical address or a meeting URL.
is_all_daySet true for an all-day event. Timezone is ignored.
has_rsvpTurn on RSVP collection for the event.
reminder_beforeReminder in minutes before the start.
recurrence_ruleAn RRULE string, for example FREQ=WEEKLY;BYDAY=MO;COUNT=10.

If you hit your monthly event limit the endpoint returns 409 with the current usage in the body. Worth adding an IF node on the status code so a workflow does not fail silently.

Step 3

Receive RSVPs in n8n

Add a Webhook node in n8n, set the method to POST, and copy its production URL. In AddCal, open Settings then Webhooks, paste the URL, and pick the event you want.

Trigger Fires when
rsvp.createdSomeone submits an RSVP to one of your events.
rsvp.updatedAn existing RSVP is changed.
calendar.subscribedSomeone subscribes to one of your calendars.

Each webhook carries one trigger. To handle several, create one webhook per trigger, all pointing at the same n8n URL if you like.

What an rsvp.created delivery looks like

{
  "rsvp": {
    "uid": "V1StGXR8Z5jdHi6BmyT",
    "public_id": "rsvp_V1StGXR8Z5jdHi6BmyT",
    "event_uid": "kJ8mQp2XnR4tLw7vBcY",
    "response_type": "yes",
    "name": "Jane Doe",
    "email": "jane@example.com",
    "data": {
      "dietary": "vegetarian",
      "company": "Acme Inc"
    },
    "created_at": "2026-05-01T09:00:00.000000Z"
  },
  "event": {
    "uid": "kJ8mQp2XnR4tLw7vBcY",
    "title": "Team Meetup",
    "date_start": "2026-05-01T09:00:00-07:00",
    "date_end": "2026-05-01T17:00:00-07:00",
    "timezone": "America/Los_Angeles",
    "public_url": "https://addcal.co/e/evt_kJ8mQp2XnR4tLw7vBcY"
  },
  "calendar": {
    "uid": "zR3nT9wKq1sYd5hGxJv",
    "name": "Company Events",
    "timezone": "America/Los_Angeles"
  }
}

Custom form answers arrive under rsvp.data, which is the field you will usually map into a spreadsheet or CRM.

A few things that catch people out. The top level event key is the calendar event, not the trigger name, and there is no field naming the trigger, so route on which of rsvp or subscription is present.

On calendar.subscribed there is no event key at all, and calendar can be null.

Never return 410 Gone. We read it as an unsubscribe and deactivate the webhook permanently.

Webhooks need the Business plan, and your n8n URL must be public HTTPS. A self-hosted instance on localhost or a private IP will be rejected when you save it.

Workflows worth building

Form to calendar

Typeform HTTP Request event created

RSVP to spreadsheet

Webhook Google Sheets row appended

RSVP to Slack

Webhook Slack channel notified

CRM deal to demo

HubSpot HTTP Request event created

Compatibility

Syncs with every major calendar

Events created from n8n land everywhere your audience keeps their calendar.

Google CalendarApple CalendarMicrosoft OutlookOffice 365Yahoo Calendar
FAQ

n8n integration, answered

Still have questions?
A real person on our team replies, usually the same business day.
Free to start, no credit card

Wire up your first workflow.
Your API token takes a minute.

Create a working calendar link in under a minute.
No credit card, no trial clock, no catch.

15,000+ creators & teams
Free forever · no credit card