Book appointment

Book a client into an open time for an appointment type.

POST https://cotlet.dev/api/v1/acuity-scheduling/appointment-types/{appointment_type_id}/appointments

write Confirm

Creates an appointment for the client at the datetime you pass, for the appointment type and calendar. Pass a time returned by check_availability_times. The client needs a first and last name (Acuity requires both for a client profile). Returns the new appointment with its ID and confirmation link. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: book_appointment
NameTypeDescription
appointment_type_id integer required integer Appointment type ID from list_appointment_types.
datetime string required string Start time from check_availability_times, e.g. '2026-11-03T10:00:00-0500'.
first_name string required string Client first name.
last_name string required string Client last name.
email string string Client email.
phone string string Client phone.
calendar_id integer integer Calendar ID from list_appointment_types or list_appointments. Without it, every calendar that offers the type is checked.
timezone string string Long-form timezone ID, e.g. 'America/New_York'.

Request

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"}'
Python
result = client.call("acuity-scheduling", "book_appointment", {"appointment_type_id":5120043,"calendar_id":27238,"datetime":"2026-11-03T10:00:00-0500","first_name":"Dana","last_name":"Reyes","email":"dana@example.com"})
Node.js
const result = await cotlet.call('acuity-scheduling', 'book_appointment', {"appointment_type_id":5120043,"calendar_id":27238,"datetime":"2026-11-03T10:00:00-0500","first_name":"Dana","last_name":"Reyes","email":"dana@example.com"});
CLI
cotlet call acuity-scheduling book_appointment --data '{"appointment_type_id":5120043,"calendar_id":27238,"datetime":"2026-11-03T10:00:00-0500","first_name":"Dana","last_name":"Reyes","email":"dana@example.com"}'

Example response

JSON

{
  "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"
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.