Book Appointment
acuity_scheduling.create_appointment
ActionBusiness appsconnection required
Calls the Acuity Scheduling API with the connection's credentials.
Book a client onto an appointment type at a specific date and time.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Username & password
- Providers
- Acuity Scheduling
- Secret shape
- {"user_id": "123456", "api_key": "…"}
- Config it needs
- calendar_id
- Resolved by
- config.connection_id, else node.connection_id
Configuration
12 fields, 5 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
datetime Start of the appointment, parsed in the business's own timezone; an ISO-8601 timestamp is the unambiguous form. | string | Yes | — | iso8601 format | 2026-03-04T13:00:00-0800 |
appointment_type_id Numeric id of the appointment type to book, from acuity_scheduling.list_appointment_types. | string | Yes | — | — | 12345678 |
first_name The client's first name. | string | Yes | — | — | Ada |
last_name The client's last name. | string | Yes | — | — | Lovelace |
email The client's email address; Acuity sends the confirmation here. | string | Yes | — | email format | — |
calendar_id Numeric calendar id; overrides the calendar set on the connection. | string | No | — | — | 987654 |
phone The client's phone number, used for SMS reminders when enabled. | string | No | — | — | — |
timezone IANA timezone the client booked in, such as America/New_York. | string | No | — | — | America/New_York |
fields Intake form answers, as a JSON array of {"id": fieldId, "value": value} objects. | array | No | — | array of object | [{"id":1,"value":"Referred by a friend"}] |
notes Internal notes on the appointment; Acuity only accepts these when 'admin' is on. | string | No | — | — | — |
admin Act as an administrator: availability rules are not enforced and admin-only fields such as notes become writable. | boolean | No | false | — | — |
no_email Suppress the confirmation email and SMS Acuity would otherwise send the client. | boolean | No | false | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"admin": false,
"appointment_type_id": "12345678",
"calendar_id": "987654",
"datetime": "2026-03-04T13:00:00-0800",
"fields": [
{
"id": 1,
"value": "Referred by a friend"
}
],
"first_name": "Ada",
"last_name": "Lovelace",
"no_email": false,
"timezone": "America/New_York"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
id Numeric id of the appointment. | number | — |
firstName The client's first name. | string | — |
lastName The client's last name. | string | — |
email The client's email address. | string | — |
phone The client's phone number, empty when none was given. | string | — |
datetime Start of the appointment as an ISO-8601 timestamp. | string | — |
endTime End of the appointment, in the business's local format. | string | — |
duration Length of the appointment in minutes. | string | — |
type Name of the appointment type that was booked. | string | — |
appointmentTypeID Numeric id of the appointment type. | number | — |
calendar Name of the calendar the appointment sits on. | string | — |
calendarID Numeric id of that calendar. | number | — |
price Price of the appointment in the account's currency. | string | — |
paid Whether the appointment has been paid for. | string | — |
canceled True once the appointment has been canceled. | boolean | — |
notes Internal notes on the appointment. | string | — |
forms Intake form answers, one entry per form. | array | — |
confirmationPage URL of the client-facing confirmation page. | string | — |
{
"appointmentTypeID": 0,
"calendar": "",
"calendarID": 0,
"canceled": false,
"confirmationPage": "",
"datetime": "",
"duration": "",
"email": "",
"endTime": "",
"firstName": "",
"forms": [],
"id": 0,
"lastName": "",
"notes": "",
"paid": "",
"phone": "",
"price": "",
"type": ""
}See Book Appointment run in a workflow.
In a technical demo we add the Acuity Scheduling connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.