youcanbookme

n8n community node for YouCanBookMe — full API capabilities including profiles, bookings, team members, appointment types, and automatic webhook creation.

Documentation

n8n-nodes-youcanbookme

An n8n community node package for YouCanBookMe — the online scheduling tool. This package provides a full-featured action node and an automatic-webhook trigger node.

Installation

n8n.cloud / n8n hosted

  1. Go to Settings → Community Nodes in your n8n instance.
  2. Search for n8n-nodes-youcanbookme and install.

Self-hosted n8n (from zip)

cd ~/.n8n/nodes
npm install /path/to/n8n-nodes-youcanbookme
# Restart n8n

Credentials

Create a YouCanBookMe API credential with:

Field Where to find it
Account ID Your YCBM account ID (visible in account settings / URL)
API Key Settings → API → Generate Key

Nodes

YouCanBookMe (Action Node)

Perform any operation against the YouCanBookMe REST API.

Resource Operations
Booking Create, Get, Get Many, Update, Delete
Profile Create, Get, Get Many, Update, Delete
Team Member Add, Get Many, Update, Delete
Appointment Type Create, Get Many, Update, Delete
Location Add, Get Many, Update, Delete
Permission Invite, Send Invitation Email
Other Make a Custom API Call

Booking — Get Many (filters)

  • Filter by profile, date range (after/before), status (active/cancelled), and free-text search.
  • Toggle Return All to paginate automatically.

Profile — Create / Update

Pass the full profile object as JSON. All YouCanBookMe profile settings (questions, actions, availability, etc.) are accessible.

Custom API Call

Use Other → Make an API Call to hit any endpoint not explicitly modelled, e.g.:

  • GET /v1/{accountId}/availableAccounts — list connected calendars for team members
  • GET /v1/profiles/{profileId}?fields=questions — fetch booking form questions

YouCanBookMe Trigger (Webhook Trigger)

Automatically registers a webhook on the chosen YouCanBookMe profile when the workflow is activated, and removes it when the workflow is deactivated. No manual webhook setup required.

Supported Events

Event Description
BOOKING_CREATED New booking confirmed
BOOKING_CANCELLED_BY_BOOKER Booker cancels
BOOKING_CANCELLED_BY_OWNER Owner cancels
BOOKING_RESCHEDULED_BY_BOOKER Booker reschedules
BOOKING_RESCHEDULED_BY_OWNER Owner reschedules
BOOKING_STARTS At booking start time (supports offset in minutes)
BOOKING_ENDS At booking end time (supports offset in minutes)
NO_SHOW Booking marked as no-show

Webhook Payload Template

The default template uses YouCanBookMe shorthand variables:

{
  "bookingId": "{REF}",
  "startsAt": "{START-ISO}",
  "endsAt": "{END-ISO}",
  "timeZone": "{TIMEZONE}",
  "firstName": "{FNAME}",
  "lastName": "{LNAME}",
  "email": "{EMAIL}",
  "title": "{BOOKING-TITLE}",
  "profileId": "{BOOKING-PAGE-ID}",
  "cancelled": "{CANCELLED}",
  "ref": "{REF}"
}

You can customise this to include any YCBM shorthand variable. See the YCBM shorthand glossary for the full list.


How Webhooks Work

YouCanBookMe does not have a dedicated webhooks API endpoint. Instead, webhooks are modelled as actions within a profile's actions array. Each action has a type: "WEBHOOK", an anchor (the event), and a to URL.

When you activate a workflow containing the YouCanBookMe Trigger node:

  1. The node fetches the current actions array from the profile via GET /v1/profiles/{profileId}.
  2. It appends a new WEBHOOK action pointing to the n8n webhook URL.
  3. It saves the action ID in the workflow's static data.

When you deactivate the workflow:

  1. The node fetches the current actions array.
  2. It removes the action matching the stored ID.
  3. It PATCHes the profile back without the webhook.

Publishing to npm

npm config set //registry.npmjs.org/:_authToken "npm_YOUR_TOKEN"
npm publish --access public

The npm token must have "Allow this token to bypass 2FA" enabled, or publication will fail interactively.


License

MIT

Discussion