Acuity Scheduling automation
Book an Acuity appointment for a client at the 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.
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
- In Acuity, open Calendar and book an appointment for the client, as Booking appointments for clients describes.
- Choose the appointment type, the calendar and the client, then look through the dates to find the first day with an open time.
- Pick a time. The Custom option in the Calendar lets you book outside your availability.
- Enter the client name and contact details and save. Each client profile needs at least a first and last name.
- 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
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. - 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.
- 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.
- 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.
- 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.
- 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
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 · Acuity developers: GET /availability/times · Acuity developers: POST /appointments · Acuity Help: Booking appointments for clients
Call book_appointment from a script
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"}' {
"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 cronAcuity Scheduling tools this automation uses
| 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 |
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.
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.