<!-- BusyBot node reference — https://busybot.net/tools/acuityscheduling-trigger/ -->

> Node: Acuity Scheduling Trigger (`acuityscheduling_trigger`) · Webhook trigger · v1
> Category: Productivity · Credentials: Acuity Scheduling (`acuitySchedulingApi`)
> Updated: 2026-08-16

# Acuity Scheduling Trigger

> Trigger on Acuity Scheduling appointment and order events

## Overview

Receives webhook events from Acuity Scheduling when appointments are scheduled, changed, rescheduled, canceled, or when orders are completed. The incoming webhook payload contains the object ID and action; optionally resolves the full object details via the Acuity API. Use this trigger to automate workflows based on scheduling activity in Acuity Scheduling.

**Category:** Productivity  
**Tool Name:** `acuityscheduling_trigger`  
**Version:** 1

**Appearance:** Icon: `lucide-CalendarCheck` | Color: `#454545`

## Node Type

**Trigger** — webhook (receives incoming HTTP callbacks)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Acuity Scheduling** credentials.
See the [Credentials Guide](https://busybot.net/credentials/acuity-scheduling-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Event | `options` | Yes | — | The Acuity Scheduling event to listen for. |
| | | | | Options: `appointment.canceled` (fires whenever an appointment is canceled), `appointment.changed` (fires when the appointment is changed in any way), `appointment.rescheduled` (fires when the appointment is rescheduled to a new time), `appointment.scheduled` (fires once when an appointment is initially booked), `order.completed` (fires when an order is completed) |
| Resolve Data | `boolean` | No | `true` | Whether to resolve the full object data from the Acuity API. When disabled, only the webhook payload with the object ID is returned. |

## Output Data

Each delivered event produces one output item carrying the Acuity Scheduling webhook payload — `id` (the appointment or order ID), `action`, `calendarID`, and `appointmentTypeID` — plus three added fields:

- `_trigger` — always `acuityscheduling_webhook`
- `_timestamp` — ISO 8601 timestamp of when the request arrived
- `_webhookEvent` — the `action` Acuity reported

Reference the payload downstream by expression, e.g. `{{ $json.id }}` or `{{ $json.action }}`.

## Usage Examples

- Start a workflow when a new appointment is booked in Acuity Scheduling
- Trigger automation when an Acuity Scheduling appointment is canceled
- React to rescheduled appointments in Acuity Scheduling
- Process completed orders from Acuity Scheduling

## Example Configuration

Start a workflow whenever an appointment is booked:

```json
{
  "type": "acuityscheduling_trigger",
  "parameters": {
    "event": "appointment.scheduled",
    "resolveData": true
  }
}
```

React to cancellations without resolving extra data:

```json
{
  "type": "acuityscheduling_trigger",
  "parameters": {
    "event": "appointment.canceled",
    "resolveData": false
  }
}
```

Process completed orders:

```json
{
  "type": "acuityscheduling_trigger",
  "parameters": {
    "event": "order.completed",
    "resolveData": true
  }
}
```

### Trigger Behavior

- **Activation:** When the workflow is activated, a webhook endpoint is registered with the service.
- **Deactivation:** The webhook is automatically unregistered when the workflow is deactivated.
- **Payload:** The incoming webhook payload is parsed and output as workflow items.
- **Verification:** Supports signature verification where applicable.

## Tips

Select the event type to listen for. When the event fires in Acuity Scheduling, the webhook payload (or resolved full object) is passed to the workflow.

- One node listens for **one** event. To react to several events, add one Acuity Scheduling Trigger per event, or use `appointment.changed`, which fires for any change to an appointment.
- The delivered payload identifies the appointment or order by ID. When a workflow needs the full record — attendee details, forms, pricing — follow the trigger with an HTTP Request node that fetches it from the Acuity API using `{{ $json.id }}`.
- Incoming requests are signature-checked against your Acuity API key, so a stale or third-party caller cannot start the workflow.