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

# Calendly agent functions

> Calendly tools for Retell AI agents: check real availability, book appointments, and look up or cancel scheduled events live during the call.

A [connected Calendly account](/integrations/calendly) gives your agents live scheduling tools: check real availability, book appointments, and look up or cancel scheduled events. Tools run during a conversation or [before and after it](/integrations/overview#run-tools-before-or-after-the-call-or-chat), with no contact sync in between — each call hits Calendly live.

## Available tools

These tools appear in your agent's function menu once Calendly is connected. **Check Availability** and **Book Appointment** are configured with an event type's [scheduling link](#find-the-scheduling-link), so each tool is pinned to one event type. See [use integration tools in an agent](/integrations/overview#use-integration-tools-in-an-agent) for how to add and configure them.

<Note>
  **Book Appointment** needs a paid Calendly plan: it books through Calendly's Scheduling API, which Calendly restricts to paid subscriptions (as of August 2026). On a free account that one tool fails; availability checks, lookups, and cancellations keep working.
</Note>

| Tool                   | What it does                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------ |
| **Check Availability** | List open slots for the configured event type                                        |
| **Book Appointment**   | Book the configured event type after collecting the invitee's name and email         |
| **List Bookings**      | List a caller's upcoming events (up to 50) by invitee email within a time window     |
| **Get Booking**        | Fetch one scheduled event and its invitees by event UUID                             |
| **Cancel Booking**     | Cancel a scheduled event; for one-on-one event types this cancels the single invitee |

<Note>
  The availability tool checks a window of up to 7 days at a time. When a caller asks about "sometime next month," the agent makes a follow-up check with a later start date — the tool's description already tells it so.
</Note>

## Find the scheduling link

The scheduling link is the public booking URL for one event type — the same link you'd send an invitee, in the form `https://calendly.com/<user>/<event>`, for example `https://calendly.com/acme/30min`.

<Steps>
  <Step title="Open the event type in Calendly">
    Go to your event types and open the one the agent should book.
  </Step>

  <Step title="Copy its link">
    Copy the event type's link, or open its booking page and copy the URL from the address bar.
  </Step>

  <Step title="Paste it into the tool">
    Paste it into the tool's event type URL input. Retell ignores case, the scheme, `www.`, trailing slashes, and anything after a `?` or `#`, so a copied link works as-is. Point a separate tool at each event type you want the agent to handle.
  </Step>
</Steps>

<Note>
  Only event types owned by the connected Calendly user resolve; anything else fails with `Calendly event type not found on the connected account`. For a teammate's event type, connect a token for that teammate. Team round-robin and collective event types can't be booked through the integration at all.
</Note>

## Permissions

The personal access token acts as the Calendly user it belongs to; there are no per-tool scopes to grant. Every tool reads that user's event types and reads and writes their scheduled events.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Availability comes back empty">
    Check the scheduling link on the tool: it must be an event type belonging to the token's own Calendly user, spelled exactly as Calendly shows it. Then check the event type itself has open hours in the window the agent asked about.
  </Accordion>

  <Accordion title="Availability works but booking fails">
    Booking goes through Calendly's Scheduling API, which needs a [paid Calendly plan](/integrations/calendly#prerequisites). It also needs the invitee's name and email — make sure the agent collects both before calling the tool. If the event type asks the invitee to choose a location, the booking needs that answer too.
  </Accordion>

  <Accordion title="List Bookings can't find the caller's event">
    The lookup matches on the invitee email within the time window the agent supplies. Have the agent confirm the email used to book, and if the event might sit outside the window, widen it.
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Does the invitee get a confirmation email?">
    Yes. Bookings go through Calendly, so invitees get exactly the notifications, reminders, and calendar invites your event type is configured to send.
  </Accordion>

  <Accordion title="How do timezones work?">
    The tools take the caller's IANA timezone (for example `America/New_York`) alongside local times, so the agent can quote and book slots in the caller's own time. Prompt the agent to confirm the caller's timezone when it isn't obvious from context.
  </Accordion>

  <Accordion title="Can the agent reschedule an event?">
    Not directly — there's no Calendly reschedule tool. Have the agent cancel the existing event and book a new time. If rescheduling in place matters, [Cal.com](/integrations/cal-com-functions) and [GoHighLevel calendars](/integrations/gohighlevel-functions#book-the-sub-account-s-calendars) both have a reschedule tool.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Integration tools for prompt agents" icon="wand-magic-sparkles" href="/build/single-multi-prompt/integration-tools">
    Add Calendly tools to a single- or multi-prompt agent and test them with live requests.
  </Card>

  <Card title="Integration tools in conversation flow" icon="diagram-project" href="/build/conversation-flow/integration-tools">
    Call Calendly tools from a function node and branch on the result.
  </Card>

  <Card title="Dynamic variables" icon="code" href="/build/dynamic-variables">
    Reuse booking details later in the call, like reading back the confirmed time.
  </Card>

  <Card title="Simulation testing" icon="flask" href="/test/llm-simulation-testing">
    Mock the booking tools to test your scheduling flow without creating real events.
  </Card>
</CardGroup>
