POST
/
api
/
v1
/
calcom
/
appointments
/
manage
curl -X POST https://api.ravan.ai/api/v1/calcom/appointments/manage \
  -H "Content-Type: application/json" \
  -d '{
    "action": "book",
    "agent_id": "019d1fdb-98e9-7c87-86c7-321e2fa98733",
    "org_id": "1268c1f0-19f3-47db-aefb-c16a7c3ace6e",
    "name": "Jane Doe",
    "email": "jane@example.com",
    "appointment_datetime": "2026-03-25T14:00:00Z"
  }'
{
  "success": true,
  "message": "Appointment confirmed successfully",
  "data": {
    "success": true,
    "message": "Booked successfully",
    "summary": "Appointment confirmed",
    "action": "book",
    "appointment_id": "appt_a1b2c3d4e5",
    "date_time": "2026-03-25T14:00:00Z",
    "agent_name": "Dr. Rivera",
    "action_required": "",
    "available_slots": []
  }
}
This endpoint does not require the X-Api-Key header. Instead, provide the org_id in the request body for authentication.

Body

action
string
required
The appointment action to perform. Allowed values:
  • book — Book a new appointment (requires name and either email or phone).
  • reschedule — Reschedule an existing appointment (requires appointment_id and appointment_datetime).
  • cancel — Cancel an existing appointment (requires appointment_id).
  • suggest — Get suggested available time slots.
  • availability — Check all available slots for a date range.
agent_id
string
required
UUID of the AI agent handling the appointment.
org_id
string
required
UUID of your organization — used for authentication instead of an API key.
name
string
Customer’s full name. Required when action is book.
email
string
Customer’s email address. Required for book if phone is not provided.
phone
string
Customer’s phone number in E.164 format. Required for book if email is not provided.
timezone
string
Customer’s IANA timezone (e.g. America/New_York, Europe/London). Used to display and confirm appointment times in the customer’s local time.
appointment_datetime
string
Desired appointment date and time in ISO 8601 format (e.g. 2026-03-25T14:00:00Z). Required for book and reschedule.
appointment_id
string
Existing appointment ID. Required for cancel and reschedule.
call_session_id
string
Call session ID to associate with the booking (optional, for tracking purposes).
notes
string
Optional notes to attach to the appointment.
days_ahead
integer
Number of days ahead to search for available slots (default: 7, max: 30). Used with suggest and availability actions.

Response

success
boolean
Whether the request succeeded.
message
string
Natural language message suitable for relaying directly to the customer.
data
object
Appointment result data.
curl -X POST https://api.ravan.ai/api/v1/calcom/appointments/manage \
  -H "Content-Type: application/json" \
  -d '{
    "action": "book",
    "agent_id": "019d1fdb-98e9-7c87-86c7-321e2fa98733",
    "org_id": "1268c1f0-19f3-47db-aefb-c16a7c3ace6e",
    "name": "Jane Doe",
    "email": "jane@example.com",
    "appointment_datetime": "2026-03-25T14:00:00Z"
  }'
{
  "success": true,
  "message": "Appointment confirmed successfully",
  "data": {
    "success": true,
    "message": "Booked successfully",
    "summary": "Appointment confirmed",
    "action": "book",
    "appointment_id": "appt_a1b2c3d4e5",
    "date_time": "2026-03-25T14:00:00Z",
    "agent_name": "Dr. Rivera",
    "action_required": "",
    "available_slots": []
  }
}

Authorizations

X-Api-Key
string
header
required

Body

application/json
action
enum<string>
required

The appointment action to perform

Available options:
book,
reschedule,
cancel,
suggest,
availability
agent_id
string
required

UUID of the agent handling the appointment

org_id
string
required

UUID of the organization

name
string

Customer full name (required for book)

email
string

Customer email (required for book if no phone)

phone
string

Customer phone in E.164 format (required for book if no email)

appointment_datetime
string

ISO 8601 datetime for book or reschedule

appointment_id
string

Existing appointment ID (required for cancel and reschedule)

call_session_id
string

Optional call session ID for book

notes
string

Optional notes for the appointment

days_ahead
integer<int32>

Days ahead to look for available slots (default: 7, max: 30). Used for suggest and availability.

timezone
string

Customer IANA timezone (e.g. America/New_York)

Response

Successful response

success
boolean
message
string

Natural language message to relay directly to the user

data
object