Package Information
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
- Go to Settings → Community Nodes in your n8n instance.
- Search for
n8n-nodes-youcanbookmeand 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 membersGET /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:
- The node fetches the current
actionsarray from the profile viaGET /v1/profiles/{profileId}. - It appends a new
WEBHOOKaction pointing to the n8n webhook URL. - It saves the action ID in the workflow's static data.
When you deactivate the workflow:
- The node fetches the current
actionsarray. - It removes the action matching the stored ID.
- 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