Acuity Scheduling automation
Reschedule Acuity appointments when you are out
You are sick or travelling on a day that already has bookings. Blocking the day stops new bookings, but the appointments already on it stay on your calendar, and each one has to be moved by hand.
Cotlet does it in your own Acuity Scheduling account with list_appointments, block_off_time, check_availability_times and reschedule_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 the Time Block and Reschedule screens and a full API with POST /blocks and a reschedule call (checked 17 Oct 2026). The API needs the Premium plan and no official MCP server connects them. Nothing in Acuity itself blocks a day and then finds a new slot for each booking on it.
How you do it in Acuity Scheduling today
- In Acuity, click Calendar, then Add New, then Time Block. Enter the date and time range, choose which calendars are blocked, and click Block off time.
- Acuity keeps an appointment that sits under a new block on your calendar. Only new clients are stopped from booking that time, so the day still shows its old bookings.
- Click each appointment in the Calendar and click Reschedule. Pick a date, then a new time.
- To use a time outside your availability, click Custom, then click Reschedule appointment.
- Or open Clients, click the client name, check the appointments, and click Reschedule selected. The arrow on the button lets you move the appointment without sending confirmation notifications.
- Repeat for every booking that day. A client in a group class can only be moved to another session of the same class.
How to reschedule Acuity appointments when you are out
I am out on 5 November. Block that day on my Main calendar, then list my appointments for it and move each one to the first open time in the next 7 days. Keep each client on the same appointment type. - 01
Read the day first
list_appointments runs with the date range for that day and the calendar. The agent notes each appointment ID, appointment type and calendar, and skips any appointment that is already canceled.
- 02
Block before moving
block_off_time adds the time block on the calendar you named, so the moved clients cannot land back on the same day and no new client books it while the agent works.
- 03
Find a real slot
check_availability_times runs for each client with the same appointment type, one date at a time, starting the day after the block. The first open time inside your window wins. A client with no open time in the window is reported, not forced.
- 04
Move one by one
reschedule_appointment moves each appointment to its slot. Acuity emails the client about the new time unless you tell the agent to send no notification. Every call asks for your OK until you switch confirmation off for this tool.
- 05
Report what moved
The agent lists each client with the old and new time, and any it could not place, so you can write to those people yourself.
What you get back
Blocked: 5 Nov, 9:00am to 5:00pm, Main calendar
Appointments on that day: 4
Moved 3:
- Ana Lopez, Initial consult: 9:30am to 6 Nov 9:30am
- Tom Becker, Follow-up: 11:00am to 6 Nov 11:00am
- Priya Nair, Follow-up: 2:00pm to 7 Nov 2:00pm
No open time in 7 days 1:
- Marc Dubois, Annual review, left on 5 Nov Other ways to ask
- Block 10 to 12 on Friday for a dentist visit and move only the appointments that fall in that range.
- Block the whole week of 16 November and move everyone to the week after, same weekday and time if it is open.
- Do not move anyone yet. Show me the new time you would pick for each appointment as a table.
- Move the clients but send no notification, and I will tell them myself.
What Acuity Scheduling allows, and what to know first
- A reschedule call needs a new datetime. Without it, Acuity returns required_datetime.
- Acuity rejects a reschedule of an appointment that is already canceled, or of a class series, as separate error cases.
- To move an appointment to a time that overlaps its own slot, availability has to be checked with that appointment ignored, otherwise the current slot looks taken.
- Blocked time does not affect group classes, and a block on top of an existing appointment leaves the appointment on the calendar.
- A block added in Acuity does not appear in a synced third-party calendar.
block_off_time and reschedule_appointment ask for your OK by default. To run it on a schedule without you, switch confirmation off for those tools in your dashboard.
Sources: Acuity Help: Blocking off unavailable time · Acuity Help: Booking appointments for clients · Acuity developers: PUT /appointments/{id}/reschedule · Acuity developers: POST /blocks
Call reschedule_appointment from a script
curl -X POST https://cotlet.dev/api/v1/acuity-scheduling/appointments/1840211/reschedule \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2026-11-06T09:30:00-0500","send_notification":true}' {
"appointment_id": 1840211,
"first_name": "Ana",
"last_name": "Lopez",
"type": "Initial consult",
"calendar": "Main",
"datetime": "2026-11-06T09:30:00-0500",
"duration": 60,
"notified_client": true
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is acuity_scheduling_write → reschedule_appointment. Example data.
Schedule it in n8n, Make, Zapier or cronAcuity Scheduling tools this automation uses
| Tool | Parameters |
|---|---|
| list_appointments | min_date, max_date, calendar_id, appointment_type_id, email, first_name, last_name, canceled, include_canceled, direction, exclude_forms, max |
| block_off_time | calendar_id, start, end, notes |
| check_availability_times | appointment_type_id, date, calendar_id, addon_ids, timezone, ignore_appointment_ids |
| reschedule_appointment | appointment_id, datetime, calendar_id, send_notification |
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.