Skip to main content
POST
Book an appointment

Autorizaciones

Authorization
string
header
requerido

API key created in the dashboard under Settings → API Keys. Send it as Authorization: Bearer pk_....

Cuerpo

application/json

Body of Book an appointment.

client
PublicBookingClientSchema · object
requerido

The customer the appointment is for.

start_at
string<date-time> | null

Local start time in timezone, e.g. 2026-09-15T14:00:00. An explicit UTC offset is accepted and then wins over timezone.

end_at
string<date-time> | null

Local end time in timezone. Required — it is never derived from the service's default duration.

timezone
string | null

IANA zone name for start_at/end_at, e.g. 'America/Bogota'.

Maximum string length: 64
service_id
integer | null

Service ID from List bookable services. One of service_id/service_name is required.

service_name
string | null

Alternative to service_id. One of the two is required.

Maximum string length: 255
professional_id
integer | null

Professional ID; must be an active member of the service.

professional_name
string | null

Alternative to professional_id. One of the two is required — this API never picks the professional for you.

Maximum string length: 255
event_type_id
integer | null

Appointment type ID; must be active and offered by the service.

event_type_name
string | null

Alternative to event_type_id. One of the two is required.

Maximum string length: 255
notes
string | null

Free text shown to the team in Dialtu.

Maximum string length: 2000

Respuesta

Created

Response of Book an appointment.

data
PublicCalendarEventSchema · object
requerido

The booked appointment.

client_id
integer
requerido

The customer's client ID.

client_created
boolean
requerido

true when this request created the customer, false when it matched an existing one.

status
string
predeterminado:success

Always success.