Bookings

Create or update a booking from your system

One request per booking. Repeating the same external_id updates the booking instead of creating a second one; a new start_at is a reschedule (reminders are re-planned, the confirmation is not sent again). status: "cancelled" cancels.

start_at without an offset (2026-09-23 15:00) is read in the project's time zone; the response returns it back as start_at_local so you can check how it was understood. Messages follow the project's settings (Automations → Bookings) and go out between 9:00 and 21:00 project time. The platform writes first only to contacts the WhatsApp number already knows. contact in the response is a hint, re-checked at send time: known (messages go out), unknown (never written to first, the booking is still kept), unverified (the check could not answer yet, the platform retries) or instagram (a 24h reply window, reminders do not fit). Requires a key with the write scope.

post/api/projects/{id}/bookings

Request

  • Base URL: https://dosai.pro
  • URL: https://dosai.pro/api/projects/{id}/bookings
  • Auth: HTTP bearer

Request body

external_idstring required

The booking's id in your system.

phonestring nullable

Client's WhatsApp number. Required unless conversation_id is given.

conversation_idstring uuid nullable

A DOS AI dialog (any channel, including Telegram).

client_namestring nullable
servicestring nullable
start_atstring required

ISO 8601 with offset, or 2026-09-23 15:00 / 23.09.2026 15:00 in the project's time zone.

end_atstring nullable
status'scheduled' | 'cancelled'
confirmboolean

false: do not send the confirmation (your system sends its own). Reminders still go out.

Response

Existing booking updated, rescheduled or cancelled, wrapped in data.

Changes

No recorded changes to this operation across all 1 revision of this API.