Create Appointment
POST /appointments
Books a new appointment for a patient.
Scope required: appointment.write
Request Body
{
"patient_id": "018f1a2b-3c4d-7e5f-a6b7-c8d9e0f1a2b3",
"doctor_id": "018d1e2f-3a4b-7c5d-e6f7-a8b9c0d1e2f3",
"appointment_date": "2026-02-15",
"start_time": "09:00",
"duration": 30,
"notes": "Follow-up visit"
}
| Field | Type | Required | Description |
|---|---|---|---|
patient_id | UUID | ✅ | |
doctor_id | UUID | ✅ | User UUID of the physician |
appointment_date | string | ✅ | Y-m-d (clinic-local date) |
start_time | string | ✅ | HH:MM (clinic-local time) |
duration | integer | — | Minutes; defaults to clinic setting |
notes | string | — | Internal notes |
Response 201
{
"data": {
"id": "018a1b2c-3d4e-7f5a-b6c7-d8e9f0a1b2c3",
"status": "scheduled",
"appointment_date": "2026-02-15",
"start_time": "09:00",
"end_time": "09:30"
}
}