canonical: https://jentic.com/apis/acuityscheduling.com/acuityscheduling

# Acuity Scheduling API

Jentic publishes the only available OpenAPI specification for Acuity Scheduling API, keeping it validated and agent-ready. Acuity Scheduling is an appointment-booking platform whose API exposes appointments, appointment types, availability, calendars, clients, blocks, forms, and orders. The spec covers 33 operations under 12 tags and is authenticated via HTTP basic auth using a User ID and API key. Endpoints under /appointments support cancel, reschedule, and payment look-up alongside standard listing and creation.

## For AI agents

Book, cancel, and reschedule appointments and check availability through Acuity Scheduling's API.

## Scope

Does not handle video conferencing, payment processing, or marketing automation - use for Acuity appointments, availability, calendars, clients, and blocks only.

## Capabilities

- Book and look up appointments via /appointments and /appointments/{id}
- Cancel or reschedule appointments through /appointments/{id}/cancel and /appointments/{id}/reschedule
- Check open availability across calendars with /availability/dates, /availability/times, and /availability/check-times
- Manage client records through the /clients resource
- Block off staff calendars by adding entries to /blocks
- List and configure appointment types and add-ons via /appointment-types and /appointment-addons
- Pull intake form definitions and submitted answers through /forms

## Use cases

### AI-driven appointment booking

Service businesses (clinics, coaches, salons) want chat or voice agents to book appointments without a human dispatcher. An agent calls /availability/dates and /availability/times for the chosen appointment type, picks a slot, and POSTs to /appointments with client details. Acuity handles the calendar collision checks and confirmation email automatically.

Example prompt: Get available times for appointment type 123 on 2026-06-12 from /availability/times, then POST to /appointments with chosen time and client details

### Cancellation and reschedule self-service

Customers cancel or reschedule via email, SMS, or chat. An agent looks up the appointment by id, calls /appointments/{id}/cancel or /appointments/{id}/reschedule with a new datetime, and confirms the change to the customer. This avoids the manual reschedule loop that typically eats receptionist time.

Example prompt: Call POST /appointments/456/reschedule with the new datetime and notify the client via the existing channel

### Calendar block-off automation

Owners block staff calendars when team members are off, training, or in internal meetings. An agent can POST to /blocks with the calendar id and time range to prevent new bookings during that window, and remove the block when the period ends. This avoids double-booking when staff schedules change last minute.

Example prompt: POST a block to /blocks for calendar 7 covering 2026-06-15 14:00-18:00 with reason 'team training'

### AI agent integration

Service businesses building agent assistants expose Acuity through Jentic alongside payment and SMS APIs. Through Jentic, basic auth credentials live in the vault, and the agent searches by intent - e.g. 'book an Acuity appointment' - without juggling raw user IDs and API keys.

Example prompt: Search Jentic for 'book an Acuity appointment', load the schema, and execute it with appointment_type, datetime, and client info

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /appointments | List appointments |
| POST | /appointments | Book an appointment |
| POST | /appointments/{id}/cancel | Cancel an appointment |
| POST | /appointments/{id}/reschedule | Reschedule an appointment |
| GET | /availability/times | Get available times |
| GET | /availability/dates | Get available dates |
| GET | /clients | List clients |
| POST | /blocks | Block calendar time |

## Key resources

- **Appointments** — Book, list, cancel, and reschedule appointments
- **Availability** — Check open dates, times, and class availability
- **Appointment Types** — Service definitions including duration and price
- **Clients** — Customer records and contact details
- **Blocks** — Time blocks that prevent new bookings
- **Calendars** — Staff or resource calendars configured in the account
- **Forms** — Intake form definitions and submitted answers
- **Orders** — Order records linked to bookings, products, or certificates

## Why Jentic

- **Setup:** Wiring the Acuity Scheduling API by hand means base64-building its Basic auth header from a User ID and API key pair and attaching it on every appointment and availability call. Through Jentic you install once, import the Acuity Scheduling API from the API Directory, store the Basic credentials once, and your agent calls it.
- **Permission scoping:** Acuity puts the appointment id in the URL path (/appointments/{id}/...), so a rule can pin your agent to one appointment: it can reschedule that appointment and nothing else. You choose the operations it may call, so cancelling appointments or creating blocks is not included unless you add it.
- **Credential handling:** Your Acuity User ID and API key are stored once, encrypted, by your own Jentic One instance and injected as the Basic auth header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'book an Acuity appointment' or 'check availability', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Calendly API** — Round-robin scheduling product popular with sales and recruiting teams.
- **Google Calendar API** — Sync Acuity bookings into staff Google Calendars or read free/busy from Google.
- **Stripe API** — Capture deposits or full payment for Acuity appointments via Stripe.

## FAQ

### Why is there no official OpenAPI spec for Acuity Scheduling API?

Acuity Scheduling does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Acuity Scheduling API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Acuity Scheduling API use?

Acuity uses HTTP basic auth with a User ID as username and an API key as password, both available in the Acuity Integrations settings. Through Jentic, the credential pair is stored encrypted in your Jentic One instance and never appears in the agent's prompt context.

### Can I book and reschedule appointments with the Acuity Scheduling API?

Yes. POST /appointments creates a booking with appointment_type_id, datetime, and client fields. POST /appointments/{id}/cancel and POST /appointments/{id}/reschedule handle the cancellation and reschedule paths, with Acuity sending confirmation emails to the client automatically.

### What are the rate limits for the Acuity Scheduling API?

The OpenAPI spec does not declare explicit rate limits, so check Acuity's developer docs for the current ceiling. Use availability endpoints (/availability/times, /availability/check-times) before posting a booking to reduce 409-style collision retries.

### How do I check availability and book through Jentic?

Run pip install jentic, search Jentic for 'check Acuity availability', load GET /availability/times, then chain a search for 'book an Acuity appointment' to load POST /appointments. Jentic injects basic auth from the vault, so the agent only supplies appointment_type_id, datetime, and client details.

### Does the Acuity Scheduling API support intake forms?

Yes. The /forms endpoint lists the intake forms configured in the account, and form answers are returned alongside an appointment record. That lets an agent pull a client's intake responses at the same time it confirms the booking.

### Can I limit what my agent is allowed to do with the Acuity Scheduling API?

Yes. Jentic One is self-hosted, so your own rules decide which Acuity operations and credentials the agent may use. Because Acuity puts the appointment id in the URL path (/appointments/{id}/reschedule, /appointments/{id}/cancel), you can pin the agent to a single appointment and to a single action, for example allowing it to reschedule that booking while cancelling and creating blocks on /blocks stay off. Only the operations you explicitly allow are callable, and the User ID and API key are injected at execution time rather than exposed to the agent.
