[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Book an Acuity appointment for a client at the next open slot

> Find the first open Acuity time for an appointment type and book a client into it, from a chat or a script. Hosted, nothing to maintain.

Source: https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server/book-client-into-next-open-slot

A client calls, emails or messages you to book. You open Acuity, look for the first free time for the right appointment type, and enter the booking yourself.

Cotlet does it in your own Acuity Scheduling account with list\_appointment\_types, check\_availability\_dates, check\_availability\_times and book\_appointment, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=acuity-scheduling) [All Acuity Scheduling tools](https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Acuity Scheduling do this on its own?

Acuity has a booking screen in the admin and a full API with GET /availability/dates, GET /availability/times and POST /appointments (checked 17 Oct 2026). The API needs the Premium plan, and nothing connects those three calls into one request an agent can make.

## How you do it in Acuity Scheduling today

1. In Acuity, open Calendar and book an appointment for the client, as Booking appointments for clients describes.
2. Choose the appointment type, the calendar and the client, then look through the dates to find the first day with an open time.
3. Pick a time. The Custom option in the Calendar lets you book outside your availability.
4. Enter the client name and contact details and save. Each client profile needs at least a first and last name.
5. Clients who book are added to the Clients list automatically, so a repeat client already has a profile.

## How to book an Acuity appointment for a client at the next open slot

Prompt

```
Book Dana Reyes (dana@example.com) for an Initial consult in the next 14 days. Pick the first open time on the Main calendar, and tell me what you booked.
```

1. 01  
### Resolve the type  
list\_appointment\_types matches the name you used, "Initial consult", to an appointment type ID and the calendars that offer it. A name that matches two types is put back to you as a question.
2. 02  
### Find the first day  
check\_availability\_dates returns the days with openings for that type in a month. The agent takes the earliest day inside your window and looks at the next month only if this one has none.
3. 03  
### Pick the time  
check\_availability\_times lists the open times on that day. The agent takes the first one that fits your rule, such as "after 10am", and never offers a time the list did not return.
4. 04  
### Book it  
book\_appointment creates the booking with the client name and email. It asks for your OK first, because the booking reaches a client, until you switch confirmation off for this tool.
5. 05  
### Say what happened  
The agent reports the type, calendar, date and time, and the confirmation link Acuity returns, or says plainly that no slot was open.

### What you get back

Example data

```
Appointment type: Initial consult, 60 min
Calendar: Main
First open day: Tue 3 Nov
Booked: Tue 3 Nov, 10:00am to 11:00am (Eastern)
Client: Dana Reyes, dana@example.com
Appointment ID: 1841502
```

### Other ways to ask

- Find the first open time for a Follow-up with any calendar and book it for Dana, after 2pm only.
- Show me the next 5 open times for an Initial consult and book nothing.
- Book Dana into the same time next week as her last appointment, if that time is open.
- Book a Follow-up for each address in this list, one per day, starting tomorrow.

## What Acuity Scheduling allows, and what to know first

- Availability calls need an appointment type ID, and the date or month in a format Acuity can parse. Without a month, availability/dates answers with an error.
- Without a calendar ID, every calendar that offers the type is checked. A timezone ID converts the returned times.
- Add-ons belong to one appointment type and change the open times, so an add-on has to be passed to the availability calls too.
- Each client profile needs at least a first and last name.

book\_appointment asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [Acuity developers: GET /availability/dates](https://developers.acuityscheduling.com/reference/get-availability-dates) · [Acuity developers: GET /availability/times](https://developers.acuityscheduling.com/reference/get-availability-times) · [Acuity developers: POST /appointments](https://developers.acuityscheduling.com/reference/post-appointments) · [Acuity Help: Booking appointments for clients](https://help.acuityscheduling.com/hc/en-us/articles/16676870828685-Booking-appointments-for-clients)

## Call book\_appointment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/acuity-scheduling/appointment-types/5120043/appointments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"calendar_id":27238,"datetime":"2026-11-03T10:00:00-0500","first_name":"Dana","last_name":"Reyes","email":"dana@example.com"}'
```

Example response

```
{
"appointment_id": 1841502,
"first_name": "Dana",
"last_name": "Reyes",
"email": "dana@example.com",
"type": "Initial consult",
"calendar": "Main",
"datetime": "2026-11-03T10:00:00-0500",
"duration": 60,
"price": "90.00",
"paid": "no",
"confirmation_page": "https://acuityscheduling.com/schedule.php?owner=11111111&action=appt&id%5B%5D=def456"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is acuity\_scheduling\_write → book\_appointment. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server.md#automations)

## Acuity Scheduling tools this automation uses

__Cotlet Acuity Scheduling tools used to book an Acuity appointment for a client at the next open slot__
| Tool | Parameters |
| -------------------------- | ---------------------------------------------------------------------------------------------- |
| list\_appointment\_types | none |
| check\_availability\_dates | appointment\_type\_id, month, calendar\_id, addon\_ids, timezone |
| check\_availability\_times | appointment\_type\_id, date, calendar\_id, addon\_ids, timezone, ignore\_appointment\_ids |
| book\_appointment | appointment\_type\_id, datetime, first\_name, last\_name, email, phone, calendar\_id, timezone |

[All 10 Acuity Scheduling tools with descriptions](https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Acuity Scheduling to Cotlet?

Yes. You sign in to Acuity Scheduling yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Acuity Scheduling once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Acuity Scheduling automations

- [Reschedule Acuity appointments when you are out](https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server/reschedule-appointments-when-you-are-out.md)
- [Acuity Scheduling API and MCP server: every tool](https://cotlet.dev/integrations/acuity-scheduling-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Acuity Scheduling.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Acuity Scheduling.

[Sign up free](https://cotlet.dev/app/signup?app=acuity-scheduling)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
