> ## 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.

# TidyCal

> Connect TidyCal to book meetings and look up appointments through your chatbot

Connect your TidyCal account so visitors can book meetings and look up upcoming appointments through your chatbot. The bot shows your TidyCal booking types and links each one to its scheduling page, where the visitor picks a time. Every booking request is captured as a lead in BubblaV. BubblaV connects to TidyCal with secure OAuth — no API keys for you to manage.

## Why Connect TidyCal?

* **Book in chat**: Visitors see your TidyCal booking types and link straight to the right scheduling page
* **Capture leads**: Every booking request is saved as a lead with the visitor's details
* **Find appointments**: Visitors can look up their upcoming TidyCal bookings and get the meeting link
* **Self-serve management**: Visitors are pointed to TidyCal to reschedule or cancel on their own
* **24/7 scheduling**: Take booking requests outside business hours

## Prerequisites

* An active TidyCal account
* At least one booking type set up in TidyCal
* Your BubblaV admin has registered a TidyCal OAuth client (one-time, see below)

## Connect to TidyCal

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

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

  <Step title="Authorize on TidyCal">
    You'll be redirected to TidyCal. 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 TidyCal account details.
  </Step>
</Steps>

## Available Tools

Once connected, the chatbot can use these TidyCal tools:

| Tool                       | What it does                                                                                        |
| -------------------------- | --------------------------------------------------------------------------------------------------- |
| `tidycal_book_appointment` | Show your TidyCal booking types, each linking to its scheduling page so the visitor can pick a time |
| `tidycal_find_bookings`    | Look up a visitor's upcoming TidyCal bookings and surface the meeting link                          |

Try queries like:

* "I'd like to book a meeting"
* "What appointments do I have coming up?"
* "Show me my upcoming TidyCal bookings"

## How Booking Works

When a visitor asks to book, the bot calls `tidycal_book_appointment`, which lists your active TidyCal booking types. Each type links out to its scheduling page on TidyCal, where the visitor picks a date and time and confirms. TidyCal handles the booking and sends the usual confirmation email.

<Note>
  TidyCal does not provide an in-chat calendar or a "booking complete" signal. The visitor completes the booking on TidyCal. Their name and email are captured as a lead in BubblaV when they ask to book.
</Note>

## Managing Appointments

TidyCal's API does not support canceling or rescheduling bookings directly. When a visitor asks to change a meeting, the bot shows their upcoming bookings and points them to TidyCal to reschedule or cancel the appointment themselves.

## Reconnecting

If your connection is ever revoked or you need to switch accounts, click **Reconnect** on the TidyCal 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 TidyCal's authorization page.
    * Try disconnecting and reconnecting via the integration card.
    * Ensure you're logged into the correct TidyCal account.
  </Accordion>

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

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

  <Accordion title="Find bookings missed an appointment">
    * TidyCal does not support filtering bookings by email, so the bot searches upcoming bookings and matches by email. Very distant future bookings may not appear.
  </Accordion>
</AccordionGroup>
