- Edit Appointment
Fully updates an Appointment. This is not a partial update: for a standard Appointment, resend staff_id, services, client, datetime, and seance_length, including when only custom_fields needs to change. A missing required field returns 422.
For a Group Event Appointment, send activity_id and client. The activity_id must match the Appointment's current Group Event. The API obtains staff_id, services, datetime, and seance_length from that Group Event.
- Get the current Appointment.
- Copy the required main fields into this request without changing them.
- Add the new values to
custom_fields, using each configured field code as a key.
The Business User must have both custom_fields_record_values_read_access and custom_fields_record_values_edit_access. Without both permissions, custom Appointment Field values are not updated.
The request can be rejected when the Appointment is waiting for online payment, lies outside the Business User's allowed editing period, is fully paid, or has an arrived client and the Business User lacks the corresponding edit permission.
If is_sale_bill_printed is true, keep the resent date, time, client, attendance status, Team Member, and Services unchanged when updating only custom fields. Changes covered by the printed receipt can require reversing the receipt first.
Request body for creating or fully updating an Appointment.
Whether to keep the appointment if the time is busy or non-working, or give an error
Appointment duration in seconds. Includes technical_break_duration. To add a technical break without reducing the service time, increase seance_length by the break delta.
Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed.
Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed.
Appointment status (2 - User confirmed the appointment, 1 - User came, services provided, 0 - user waiting, -1 - user did not show)
Technical break duration in seconds.
- Must be in multiples of 300 (5-minute intervals)
- Maximum value is 3600 (1 hour)
- If null or not provided, uses location default from Settings → Appointment Log → Technical Breaks
Custom Appointment Field values keyed by field code.
The Business User must have both custom_fields_record_values_read_access and custom_fields_record_values_edit_access. When updating an Appointment, supplying custom_fields does not make the request partial: resend the required main fields for the applicable Appointment type.
- Mock serverhttps://developer.alteg.io/_mock/en/b2b-v1/openapi/locations/{location_id}/appointments/{record_id}
- Productionhttps://api.alteg.io/api/v1/locations/{location_id}/appointments/{record_id}
curl -i -X PUT \
'https://developer.alteg.io/_mock/en/b2b-v1/openapi/locations/{location_id}/appointments/{record_id}?include_consumables=0&include_finance_transactions=0' \
-H 'Accept: application/vnd.api.v2+json' \
-H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}, User {UserToken}_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"team_member_id": 8886,
"services": [
{
"id": 331,
"first_cost": 9000,
"discount": 50,
"cost": 4500
}
],
"client": {
"phone": "+13155550175",
"name": "James Smith",
"email": "j.smith@example.com"
},
"datetime": "2026-09-21T23:00:00.000-05:00",
"seance_length": 3600,
"custom_fields": {
"my_custom_field": 123,
"some_another_field": [
"first value",
"second value"
]
}
}'Created
Object with data
{ "id": 999, "services": [ { … }, { … } ], "client": { "phone": "+13155550175", "name": "James Smith", "email": "j.smith@example.com" }, "clients_count": 1, "staff": { "id": 8886, "name": "Alice Smith", "spec": "stylist" }, "datetime": "2026-09-21T23:00:00.000-05:00", "seance_length": 3600, "create_date": "2026-09-21T23:00:00.000-05:00", "comment": "test appointment!", "visit_attendance": 1, "confirmed": 1, "sms_before": 6, "sms_now": 1, "sms_now_text": "", "email_now": 1, "notified": 0, "master_request": 1, "api_id": "", "from_url": "", "review_requested": 0, "activity_id": 0, "documents": [ { … } ] }
{ "success": true, "data": { "id": 999, "services": [ … ], "client": { … }, "clients_count": 1, "staff": { … }, "datetime": "2026-09-21T23:00:00.000-05:00", "seance_length": 3600, "create_date": "2026-09-21T23:00:00.000-05:00", "comment": "test appointment!", "visit_attendance": 1, "confirmed": 1, "sms_before": 6, "sms_now": 1, "sms_now_text": "", "email_now": 1, "notified": 0, "master_request": 1, "api_id": "", "from_url": "", "review_requested": 0, "activity_id": 0, "documents": [ … ] }, "meta": [] }