Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-42min
An n8n community node for 42min, a meeting
scheduling platform. Create and manage bookings, look up availability, and start
workflows the moment something happens on a calendar.
This is a community node. It runs inside your own n8n instance and talks directly toapi.42min.us; nothing routes through a third party.
Installation
In n8n, go to Settings → Community Nodes → Install and enter:
n8n-nodes-42min
Or install it manually next to your n8n data directory:
npm install n8n-nodes-42min
Requires n8n 1.x and Node.js 20.15 or newer.
Credentials
The node authenticates with a personal access token.
- In 42min, open Settings → API and create a token.
- Give it the scopes you need. For everything this node offers:
user:read,event_types:read,slots:read,bookings:read,bookings:create,bookings:cancel,bookings:reschedule,bookings:update,series:read,series:write,webhooks:read,webhooks:write. - In n8n, create a 42min API credential and paste the token.
Use Test to confirm it works. Leave Base URL alone unless you run a
self-hosted 42min.
Operations
42min (action node)
| Resource | Operations |
|---|---|
| Booking | Create, Get, Get Many, Update, Cancel, Reschedule |
| Event Type | Get, Get Many |
| Series | Create, Get, Get Many, Update, Pause, Resume, End, Change Host |
| Slot | Get Many, Check |
| User | Get Current |
42min Trigger
Starts a workflow on any of these events:
booking_created, booking_updated, booking_canceled, booking_rescheduled,booking_no_show, event_type_updated, event_type_deleted,routing_form_submitted.
Activating a workflow registers a webhook subscription with 42min automatically, and
deactivating it removes the subscription again.
A booking that is one occurrence of a recurring series carries series_id andseries_index, on trigger items and on lookups alike.
Things worth knowing
Trigger items and lookup items use the same field names. 42min delivers webhooks
in nested camelCase (data.booking.startTime) while the REST API is flat snake_case
(start_at). Booking triggers reshape the delivery into the REST vocabulary so you do
not have to learn two names for every field. The original envelope fields survive asevent_id, event and occurred_at. Set Raw Payload if you want the delivery
untouched.
Deliveries are verified. Every webhook is checked against itsX-42min-Webhook-Signature HMAC, with a replay window, and anything that fails is
rejected with a 401 instead of starting your workflow. Turn Verify Signature off
only if something between 42min and n8n rewrites the request body.
Dedupe on delivery_id, not event_id. The delivery id is stable across retries.
Both are attached to every trigger item.
Writes are idempotent. Booking creates, updates, cancels and reschedules send anIdempotency-Key derived from the execution and item, so a retry inside one execution
replays the original result rather than double-booking. Set Idempotency Key
yourself when the same logical operation might be attempted from more than one
execution, for example keyed on a CRM record id.
Get Event Type identifies by ID or by username plus slug. A slug alone is not
enough, since it is unique per user rather than per account. The node encodes theusername/slug pair into the single path segment the API expects.
Recurring series skip busy dates rather than shifting them. Creating a series
books up to count occurrences; a date the host is not free on is left out, and the
output lists what was created and what was skipped. The event type must have
recurring meetings turned on. Updating a series reads it first to send its version
token back, exactly like updating a booking, and a pattern change rebooks the
upcoming occurrences onto the new dates.
Check the slot before you book. Use Slot: Check first. A slot that was free a
moment ago may not be, and Create Booking sends real email and writes to a real
calendar.
Updating a booking reads it first. 42min requires the If-Match version token on
a PATCH, so the node fetches the booking, takes its ETag and sends it back. A
concurrent edit fails with a 409 rather than being silently overwritten. Onlymetadata, responses and attendee_name are writable: to move a booking use
Reschedule, to cancel it use Cancel.
Trigger requirements
42min delivers over HTTPS to public addresses only. Your n8n must be:
- reachable at an
https://URL, and - resolvable to a public IP. Deliveries to private ranges are refused.
If n8n advertises a non-HTTPS address the trigger will say so when you activate the
workflow. Set WEBHOOK_URL (or N8N_PROTOCOL and N8N_HOST) accordingly.
The action node has no such requirement: it only makes outbound calls, so it works
behind a firewall.
Local development
npm install
npm run lint
npm test
To run n8n with the node loaded and rebuilt on every change:
npm run dev
For the trigger you need a publicly reachable n8n, so use a tunnel during
development.
Releasing
Publishing happens in GitHub Actions, which attaches an npm provenance
statement. n8n requires this: nodes published from a local machine are not
accepted for verification.
npm version minor
git push --follow-tags
Pushing the tag runs .github/workflows/publish.yml, which lints, builds and
publishes. Update CHANGELOG.md in the same commit as the version bump.