Skip to main content

Acuity Scheduling Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to an Acuity Scheduling location.
acuity_scheduling_api.png

Acuity Scheduling

Create an Acuity Scheduling Destination

  1. Click the + icon on the Nexset that will be sent to the Acuity Scheduling destination, and select the Send to Destination option from the menu.

  2. Select the Acuity Scheduling connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Acuity Scheduling account, and click Next; or, create a new Acuity Scheduling credential for use in this flow.

  3. In Nexla, Acuity Scheduling destinations can be created using pre-built endpoint templates, which expedite destination setup for common Acuity Scheduling endpoints. Each template is designed specifically for the corresponding Acuity Scheduling endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Acuity Scheduling destinations can also be configured manually, allowing you to send data to Acuity Scheduling endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Acuity Scheduling endpoints. Each template is designed specifically for the corresponding Acuity Scheduling endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create Appointment

    This endpoint creates a new appointment in Acuity Scheduling. Use it to programmatically book appointments from upstream systems — for example, when a lead converts in a CRM, or when an external scheduling assistant resolves a booking.

    • Each record in the upstream Nexset must include the fields that Acuity Scheduling requires to book an appointment. The required fields are appointmentTypeID (the appointment type ID, obtainable from the List Appointment Types source endpoint), datetime (the appointment start time in ISO 8601 format, for example 2026-05-15T14:30:00-0500), and the client's firstName, lastName, and email. An optional calendarID selects the calendar to book against; when omitted, Acuity Scheduling assigns the appointment automatically.
    • The full record is sent as the JSON body of the POST /appointments call. Use the Nexla transform layer to shape upstream attributes into the field names expected by Acuity Scheduling.

    Before booking, use the Check Time Availability destination (or the Get Available Times source) to verify the chosen time slot is still available. For full payload reference, see the Acuity Scheduling appointment scheduling docs.

    Update Appointment

    This endpoint updates an existing appointment — useful for syncing client info changes, intake-form values, labels, or notes back to Acuity Scheduling from a downstream system of record.

    • Enter the appointment ID in the Appointment ID field. The default value is {{id}}, which substitutes the id attribute from each upstream record — so the destination can be driven directly by a List Appointments source.
    • The body of each PUT call is the upstream record (as JSON). Include only the fields that should be changed; omitted fields are left untouched.

    Updating an appointment does not change its datetime or calendar — use the Reschedule Appointment endpoint for those operations.

    Cancel Appointment

    This endpoint cancels an existing appointment. The cancellation is irreversible and fires Acuity Scheduling's appointment.canceled webhook to any subscribed listeners.

    • Enter the appointment ID in the Appointment ID field. This is required.
    • Set the Admin field to true to cancel as the account admin, which bypasses cancellation rules and allows setting noShow. Set it to false to cancel as the client (subject to your account's cancellation policy).
    • Set the Skip Email/SMS field to true to suppress the cancellation email and SMS sent to the client.

    Because cancellation is irreversible, validate upstream data carefully before activating this destination. Consider routing through a Nexla transform that filters to only the appointments that should genuinely be canceled.

    Reschedule Appointment

    This endpoint moves an existing appointment to a new datetime, optionally onto a different calendar. It fires the appointment.rescheduled webhook for any subscribed listeners.

    • Enter the appointment ID in the Appointment ID field. This is required.
    • The body of each PUT call must include a datetime field with the new appointment time. Acuity Scheduling parses this value using PHP's strtotime in the business timezone — ISO 8601 timestamps are the safest format.
    • Optionally, include a calendarID in the body to move the appointment to a different calendar.

    Before rescheduling, call the Get Available Times source endpoint with the appointment's own ID in Ignore Appointment IDs so its current slot is not seen as busy by itself when computing availability.

    Subscribe Webhook

    This endpoint registers a webhook subscription with Acuity Scheduling. Use it to programmatically subscribe a Nexla webhook source (or any external listener) to scheduling events without manually configuring webhooks in the Acuity Scheduling UI.

    • Each record in the upstream Nexset must include an event field (one of appointment.scheduled, appointment.rescheduled, appointment.canceled, appointment.changed, or order.completed) and a target field (the HTTPS URL where Acuity Scheduling should POST the event payload).
    • Acuity Scheduling allows a maximum of 25 active webhook subscriptions per account.

    Acuity Scheduling signs every webhook delivery with an x-acuity-signature header (HMAC-SHA256, keyed with your API key). Verify the signature on receipt before trusting the payload. For full details, see the Acuity Scheduling webhook reference.

    Check Time Availability

    This endpoint checks whether a specific datetime is available for an appointment type and calendar. Use it as a pre-flight check ahead of Create Appointment or Reschedule Appointment to avoid double-bookings.

    • Each record in the upstream Nexset must include a datetime field (the slot to check, in ISO 8601 format), an appointmentTypeID field (the appointment type to check), and a calendarID field (the calendar to check).
    • Enable the Response Webhook option (in the Configure Manually section below, after switching to the Advanced tab) to capture the API response into a Nexla webhook source for downstream branching.

    Create Client

    This endpoint creates a new client record in Acuity Scheduling. Use it to seed your Acuity Scheduling client list from an external CRM or contact database before bookings are made.

    • Each record in the upstream Nexset must include firstName and lastName (both required), and may include email, phone (recommended for matching), and notes (optional free-text notes).
    • The full record is sent as the JSON body of the POST /clients call.

    Update Client

    This endpoint updates an existing client record. Acuity Scheduling identifies clients by their current first name, last name, and (optionally) phone number rather than by ID, so the lookup fields and the new values are passed in different parts of the request.

    • Enter the client's current first name in the Lookup First Name field and current last name in the Lookup Last Name field. Both are required, and they are sent as URL query parameters that identify which client to update.
    • Optionally, enter the client's current phone number in the Lookup Phone field. This is used as a disambiguator when more than one client shares the same first and last name.
    • The body of each PUT call carries the new values to apply — for example, an updated email, phone, or notes field. Use the Nexla transform layer to split the upstream record into the lookup query params and the body payload.

    Because the lookup is by name (not ID), make sure each upstream record contains both the previous and the new values when renaming a client. For complete details, see the Acuity Scheduling update client reference.

Configure Manually

Acuity Scheduling destinations can be manually configured to send data to any valid Acuity Scheduling API endpoint. Manual configuration provides maximum flexibility for endpoints not covered by pre-built templates, including custom URL patterns, query parameters, or batch settings.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Acuity Scheduling API after each call to a new Nexla webhook data source. This is particularly useful for capturing the new appointment ID returned by Create Appointment, or the availability result returned by Check Time Availability.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Acuity Scheduling API from the Method pulldown menu. Common methods for Acuity Scheduling write endpoints include:

    • POST: For creating resources (for example, POST /appointments, POST /clients, POST /webhooks)
    • PUT: For updating resources or triggering state changes (for example, PUT /appointments/{'{id}'}, PUT /appointments/{'{id}'}/cancel, PUT /appointments/{'{id}'}/reschedule)

Data Format

  1. Select the format in which the Nexset data will be sent to the Acuity Scheduling API from the Content Format pulldown menu. The Acuity Scheduling API expects application/json for all write endpoints, so JSON is the appropriate choice for every Acuity Scheduling destination.

API Endpoint URL

  1. Enter the URL of the Acuity Scheduling API endpoint to which you want to send the Nexset data in the URL field. All Acuity Scheduling API URLs use the base https://acuityscheduling.com/api/v1/ followed by the resource path. For update or state-change operations, include the appointment or order ID at the end of the URL — Nexla macros can substitute the ID from each upstream record (for example, https://acuityscheduling.com/api/v1/appointments/{id}).

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (for example, header1:value1,header2:value2).

    You do not need to include any headers already present in the credentials. The Authorization header for Basic Auth or OAuth 2.0 is added automatically based on your Acuity Scheduling credential, and Content-Type: application/json is added based on the selected Content Format.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Acuity Scheduling destination, select the attributes from the Exclude Attributes pulldown menu. This is useful for stripping internal Nexla bookkeeping fields, or for omitting upstream IDs that Acuity Scheduling would reject as unknown.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional

The Acuity Scheduling API does not natively support batched create/update calls — each appointment, client, or webhook is created with its own request. Record batching in Nexla is therefore best left disabled for Acuity Scheduling destinations.

  1. To override the default and group records into a single batched payload anyway, check the box next to Would you like to batch your records together?.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

Response Webhook

Optional

Nexla can automatically send the response received from the Acuity Scheduling API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and downstream-process the returned appointment IDs, order IDs, or availability results.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

    Enabling the response webhook is particularly useful for Create Appointment (to capture the new appointment ID), Check Time Availability (to branch on the availability result), and Subscribe Webhook (to capture the new webhook subscription ID).

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Acuity Scheduling API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.

  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Acuity Scheduling API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Acuity Scheduling API using the current settings.

Important

Test payloads sent to write endpoints (such as Create Appointment, Cancel Appointment, or Reschedule Appointment) will make real, irreversible changes in your Acuity Scheduling account. Use a sandbox or test account before sending test data against a production Acuity Scheduling account.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Acuity Scheduling, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Acuity Scheduling until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.