This content is AI-assisted and reviewed by humans where applicable

Acuity Scheduling Integration: A Practical Setup Guide

Solo Blog13 min read

Content is AI-assisted and may include links to our partners.

Step-by-step acuity scheduling integration guide for small businesses. Learn setup, calendar sync, payments, Zapier and how to fix common errors fast.

Acuity Scheduling Integration: A Practical Setup Guide

A client books an appointment through your website, but the slot is still open on a staff member's Google Calendar. Someone else takes it, the payment sits in a pending state, and your CRM receives duplicate notifications. The booking form worked. The integration failed.

That distinction matters. A reliable Acuity Scheduling integration isn't just an embed, a calendar connection, or a Zapier recipe. It's a chain of systems that must agree about availability, payment status, appointment changes, time zones, and who owns the truth. Acuity was founded in 2006 and acquired by Squarespace on April 23, 2019, after operating independently for 13 years. At the time of the announcement, it supported more than 50,000 businesses worldwide, according to this Acuity Scheduling history and review.

Mapping Your Acuity Scheduling Integration Stack

Before opening Acuity, map the four surfaces your business needs to connect. This prevents you from adding automation to an unstable booking process.

  1. Booking entry point: Decide whether clients will book through a website embed, a social profile, or a Squarespace page. An embed sends the visitor into Acuity's booking flow. It doesn't, by itself, decide how calendars, payments, or CRM records behave.

  2. Calendar of record: Choose whether Google Calendar, Outlook, or iCloud holds the authoritative schedule. Acuity supports two-way sync with Google Calendar, Outlook Calendar, iCloud Calendar, and Office 365, including automatic blocking of time already committed on connected calendars through its calendar management features. If an outside calendar is authoritative, Acuity should read those busy periods rather than overwrite them.

  3. Payment surface: Connect Stripe, Square, or PayPal only after appointment types, prices, currencies, deposits, and refund rules are clear. A payment confirmation should flow back into the booking record, not become a separate manual check.

  4. Automation layer: Use Zapier for workflows that can tolerate some delay, or use Acuity webhooks for appointment changes that need immediate downstream handling. Acuity's API manages structured resources such as appointments, availability, client records, intake forms, products, and webhooks, and returns JSON rather than free-form notes, as described in this Acuity API reference.

A professional woman working on a laptop connected to calendar booking and social media marketing integrations.

Write the direction beside every connection. The booking page receives appointments, calendar sync checks or sends availability, payment processors return transaction status, and automations react to appointment events. List each staff member's calendar separately. Pointing multiple staff members at one shared source can create overlapping writes that are difficult to diagnose.

Squarespace launched Squarespace Scheduling by January 2020, integrating Acuity's scheduling tools into its broader website platform, as documented in the Squarespace Scheduling announcement. If you're building with Acuity Scheduling tools for Solo, treat the website as the entry point and Acuity as the booking system, unless your operational rules clearly assign ownership elsewhere.

Finish the map by listing the credentials you'll need. That may include Acuity API credentials, calendar OAuth access, payment authorization, Zapier authentication, CRM permissions, and a secure webhook secret. Keep API calls server-side, never in browser code, and store secrets outside page content.

Embedding the Booking Widget on Your Website

The cleanest website setup usually starts inside Acuity. Open Home, choose Sharing, then select Embed scheduling page. Acuity provides an iframe option and an inline JavaScript option. For a Solo AI Website Creator page, use the iframe first. It's easier to isolate, and it avoids script conflicts that can occur when a site builder also manages page behavior.

Screenshot from https://example.com/screenshots/acuity-embed-code-panel.png

Open the page where visitors should book, add an HTML block, and paste the complete iframe tag. Set the iframe width to 100% and give it a height of at least 700px, so visitors can move through appointment choices without a cramped internal scrollbar. On smaller screens, place the iframe inside a wrapper with horizontal overflow enabled. That gives the booking panel room to render without forcing the whole page wider than the device.

A basic iframe approach is preferable to pasting only part of the snippet. If you choose the button-style embed instead, use it inside a clear call-to-action area, such as “Book a consultation,” and make sure the button opens the intended scheduling page. The broader principle is the same as with other website widgets, the embedded element should support the page rather than compete with its navigation.

Test the booking path before publishing

Preview the page in an incognito window. Published pages can cache aggressively, so an administrator's browser may display an older working version while visitors receive a broken embed.

Use this sequence:

  • Load the page without an account session: Confirm the widget appears for a new visitor.
  • Select a real appointment type: Check that the duration, intake fields, price, and availability match the service.
  • Submit a $0 test appointment: Follow the entire path through confirmation and notifications.
  • Test payment separately: Use Stripe Test Mode before allowing live transactions.
  • Cancel the test booking: Verify that cancellation updates the appointment and any connected workflow.

If the iframe is blank, inspect the HTML block for a truncated tag, an accidental text conversion, or a page-security setting that blocks embedded content. If the widget loads but shows stale availability, fix the calendar and availability source rather than repeatedly refreshing the page. The embed can only display the data Acuity receives.

For a pop-up flow, test both the trigger and the close action on desktop and mobile. A booking widget that works only after a second click or traps a visitor in a modal will create support requests even though the Acuity connection itself is valid.

Syncing Acuity With Google Outlook and iCloud Calendars

Calendar sync is where most double-booking problems begin. Acuity supports two-way synchronization with Google Calendar, Outlook Calendar, iCloud Calendar, and Office 365, but the practical question isn't just whether a provider is supported. You need to know which system sends changes, which system receives busy blocks, and how quickly you can detect a mismatch.

Acuity appointments can block time on a connected calendar, while outside busy events can block availability in Acuity when the connection is configured for two-way behavior. One-way sync is different. It can send Acuity appointments outward without bringing outside events back into Acuity, so it won't protect an appointment slot from unrelated calendar commitments.

Provider Sync Direction Typical Latency Account Requirement
Google Calendar Two-way when configured Verify with a test booking Connected Google calendar with the required access
Outlook Calendar Two-way when configured Verify with a test booking Connected Outlook or Office 365 calendar with authorization
iCloud Calendar Provider-specific, confirm the direction Verify after connection iCloud calendar connection and blocking settings
Office 365 Two-way when configured Verify with a test booking Authorized Office 365 account

Configure each calendar independently

In Acuity, go to Settings, open Integrations, and choose Calendar. For Google Calendar, connect the calendar that belongs to the responsible staff member or business process. Don't casually attach a personal account when the organization needs a durable operational owner. If that person leaves, the connection can become an administrative problem.

For Outlook, complete the Microsoft authorization flow and confirm that the selected calendar is the one used for work commitments. With iCloud, pay close attention to the sync direction and blocked-time setting. Acuity's setup flow uses Sync with Other Calendars, where you choose a provider and select options for each Acuity calendar. Third-party blocked time appears only after the account connection is complete and the relevant blocking option is checked, according to the Google Calendar syncing instructions.

Connect every staff member's calendar separately. Don't point two staff records at the same source calendar unless that shared ownership is deliberate and tested. Then create a test appointment, confirm it reaches the source calendar, add a blocker event in the external calendar, and verify that Acuity removes the corresponding availability. This catches direction errors before clients encounter them.

Connecting Payment Processors to Acuity

Acuity payment setup should answer one question for every appointment type: when does the client pay, and what does the booking status mean afterward?

Open Integrations, choose Payments, and click Connect beside Stripe, Square, or PayPal. Complete the authorization flow in the payment provider's window, then return to Acuity and inspect the appointment settings. For paid appointments, enable Charge at time of booking. For deposits or deferred collection, use Charge at time of service where that workflow fits, and enable Require credit card to hold appointment under Appointment Settings when a card is needed to protect the slot.

Screenshot from https://example.com/acuity-payments-integrations-screen.png

Test the complete payment round trip

With Stripe, open Settings, choose Payments, and switch on Test Mode. Use a sandbox card such as 4242 4242 4242 4242 for the test transaction, then confirm that Acuity records the appointment and the expected payment state. Test the path from booking page to processor to confirmation email, not just the card form.

Square and PayPal need their own checks. Confirm how Square handles tips attached to pricing fields, and verify when PayPal captures funds because capture can be delayed. A payment that appears authorized but hasn't reached the expected state should not trigger the same fulfillment workflow as a completed payment.

Review each appointment type for its specific price, currency, and refund policy. Currency mismatches can leave bookings in Pending Payment, so test every currency and processor combination you intend to offer. For broader operational context, this guide to Vanta Sports payment processing is useful when you're assessing how payment events should move through a wider business workflow.

You can also review Solo's guide on integrating a payment gateway, but keep the testing discipline specific to Acuity. Turn Test Mode off after final quality assurance. Otherwise, live clients may receive rejected payment responses or appear to complete a booking that your business can't collect.

Automating Workflows With Zapier and Native Webhooks

Start with the business event, not the automation tool. If a new appointment should create a CRM record, choose New Appointment. If cancellation should alert a team, choose Appointment Cancelled. A clear trigger prevents a Zap from firing on every minor update when the team only needs one downstream action.

In Zapier, search for Acuity Scheduling, select the trigger, and authenticate with an API key. In Acuity, enable API access through Customizations, then API, and test the connection against a real appointment. Add one action at a time:

  • Create Row: Send the appointment to Google Sheets as a backup activity log.
  • Send Email: Use Gmail for an internal alert or operational handoff.
  • Create Deal: Send qualified appointment details into HubSpot for follow-up.

Run the Zap with a real test booking before switching it on for clients. Check the appointment ID, client details, appointment type, time zone, payment status, and cancellation behavior. Acuity intake forms use structured field IDs through a fields array of {id, value} objects. Checkbox-list answers must be submitted as one comma-delimited string with a space after each comma, so verify the field IDs and payload shape before relying on form data, as shown in the appointment update API reference.

A woman using a laptop displaying a Zapier workflow connecting Acuity Scheduling with other productivity tools.

Use webhooks where delay creates risk

Acuity's recommended appointment-event pattern is webhook-based rather than polling-based. Register a secure endpoint in Integrations, API, and Webhooks, then subscribe to the appointment events you need. The endpoint must be served over standard port 80 or 443, and you should verify test events before putting the workflow into production, as described in the Acuity webhook documentation.

Use webhooks for CRM updates, Slack alerts, and other actions that must react as soon as an appointment changes. Keep Zapier for tasks that can tolerate a delay. Your receiving endpoint should verify the signature, reject unauthorized requests, respond quickly, and process the event asynchronously. Add an idempotency check keyed to the appointment ID, so a retry updates the existing record instead of creating another one.

Practical rule: A webhook tells you that an event happened. Your integration still needs to decide whether it has already processed that event.

Common Integration Errors and How to Fix Them

Most Acuity support problems are reliability risks in disguise. The booking page may look correct while a race condition, stale calendar, exposed credential, or failed webhook quietly damages the workflow.

Risk Root Cause Fix
Simultaneous booking conflict Multiple visitors reserve the same slot before downstream systems update Limit appointment availability per time slot and test concurrent sessions
Time-zone drift Business settings and visitor display rules disagree Set the business time zone first and verify the displayed appointment locally
Credential exposure API keys appear in browser code or copied automation steps Rotate the key, move it to secure server-side storage, and remove old copies
Calendar sync lag One-way sync sends bookings outward but doesn't import busy blocks Use the appropriate two-way configuration and test with a blocker event
Webhook failure Endpoint returns an error or disappears before processing Return 200 quickly, queue the work, and monitor failed deliveries

Fix the failure before adding another tool

A race condition occurs when two booking attempts reach the same availability decision before the system has finished updating the slot. Don't assume a calendar refresh will solve it. Review Acuity's availability limits, test separate client sessions, and check whether a CDN or caching layer strips the cookies that distinguish those sessions.

Time-zone drift needs a settings check, not a client-side patch. Set the business time zone in Acuity, keep the embed's locale consistent, and verify the appointment from the visitor's perspective. Independent implementation guidance also recommends sending the browser time zone to availability requests, reloading availability when a selected slot becomes unavailable, and limiting availability queries to about three months ahead because provider schedules can change, as discussed in this Acuity integration guidance.

Credential exposure is more serious than a broken button. Never place an Acuity API key in client-side JavaScript or a public page. Rotate it through Customizations, API, store the replacement in a secrets manager, and search the codebase and automation history for the old value.

A webhook endpoint shouldn't perform heavy processing before acknowledging Acuity. Return success quickly, place the event on a queue, and handle retries safely. For calendar reliability, verify both directions with a new booking and a blocker event, then document which system staff should edit when schedules change.

The simple booking narrative also breaks down for businesses with unusual rules. Multi-provider appointments, licensing-based assignment, localization, and advanced class flows can require custom logic, and practitioner discussions highlight gaps in generic scheduling tools for complex clinician workflows in this community discussion. Acuity documents niche functions such as paired drop-off and pick-up appointments and waitlists, but test whether those features match your actual operations before building a large automation layer around them.


Solo AI Website Creator lets you add a scheduling link or third-party embed through a Code Embed section, giving your Acuity booking flow a place on a professional website without custom development. If you want to connect the booking entry point and reliability checks in one practical setup, visit Solo AI Website Creator and build the page your clients will use to book.

acuity scheduling integrationacuity setup guidecalendar synczapier automationsbooking widget