> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bubblav.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Acuity Scheduling

> Connect Acuity Scheduling to book, reschedule, and cancel appointments through your chatbot

Connect your Acuity Scheduling account so visitors can book, reschedule, and cancel appointments through your chatbot — with an inline calendar right inside the conversation. Every booking is captured as a lead in BubblaV. BubblaV connects to Acuity with secure OAuth — no API keys for you to manage.

## Why Connect Acuity Scheduling?

* **Book in chat**: Visitors pick a time from an inline Acuity calendar without leaving the conversation
* **Capture leads**: Every booking is saved as a lead with attendee details
* **Real-time availability**: Show open slots straight from your Acuity calendar
* **Cancel & reschedule**: Visitors manage their own upcoming appointments from the chat
* **24/7 scheduling**: Take bookings outside business hours

## Prerequisites

* An active Acuity Scheduling account
* At least one appointment type set up in Acuity
* Your BubblaV admin has registered an Acuity OAuth client (one-time, see below)

## Connect to Acuity Scheduling

<Steps>
  <Step title="Navigate to Integrations">
    Go to **Dashboard** → select your website → **Integrations** → find **Acuity Scheduling**
  </Step>

  <Step title="Click Connect">
    Click the **Connect** button next to Acuity Scheduling
  </Step>

  <Step title="Authorize on Acuity">
    You'll be redirected to Acuity. Log in (if needed) and click **Authorize** to grant BubblaV access using secure OAuth 2.0.
  </Step>

  <Step title="Return to Dashboard">
    You'll be redirected back automatically and the integration will show as **Connected** with your Acuity account details.
  </Step>
</Steps>

## Available Tools

Once connected, the chatbot can use these Acuity tools:

| Tool                            | What it does                                                                       |
| ------------------------------- | ---------------------------------------------------------------------------------- |
| `acuity_book_appointment`       | Show your Acuity appointment types with an inline calendar so the visitor can book |
| `acuity_find_appointments`      | Look up a visitor's upcoming Acuity appointments                                   |
| `acuity_cancel_appointment`     | Show appointments with Cancel buttons so the visitor can cancel                    |
| `acuity_reschedule_appointment` | Show appointments with Reschedule buttons so the visitor can pick a new time       |

Try queries like:

* "I'd like to book a consultation"
* "Show my upcoming appointments"
* "I need to cancel my meeting"
* "Can I reschedule my appointment?"

## How the Inline Calendar Works

When a visitor asks to book, the bot calls `acuity_book_appointment`, which lists your public Acuity appointment types. The visitor picks one and an **inline Acuity calendar** renders inside the chat so they can choose a date and time and confirm — all without leaving your website. Their name and email are pre-filled when available.

<Note>
  Acuity does not send a "booking complete" signal back to the widget. After booking inside the calendar, the visitor taps **I've scheduled my appointment** to confirm, and the bot records the lead. The Acuity confirmation page is also visible inside the calendar.
</Note>

## Reconnecting

If your connection is ever revoked or you need to switch accounts, click **Reconnect** on the Acuity Scheduling integration card. You'll go through the OAuth flow again to get fresh credentials.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authorization failed or access denied">
    * Make sure you clicked **Authorize** (not Deny) on Acuity's authorization page.
    * Try disconnecting and reconnecting via the integration card.
    * Ensure you're logged into the correct Acuity account.
  </Accordion>

  <Accordion title="No appointment types shown">
    * Create at least one appointment type in Acuity and make sure it isn't private.
  </Accordion>

  <Accordion title="Connection stopped working">
    * Acuity tokens are long-lived until revoked. If calls fail with an authorization error, click **Reconnect** on the integration card.
  </Accordion>
</AccordionGroup>
