Skip to main content
Usa los endpoints de calendario para agendar citas en tu calendario de Dialtu desde n8n, Zapier, un formulario web o tu propio backend, y para comprobar cuánto espacio queda antes de hacerlo:
  • Get bookable capacity per serviceGET /api/v2/public/calendar/availability
  • List bookable servicesGET /api/v2/public/calendar/services
  • Book an appointmentPOST /api/v2/public/calendar/events
  • Listas de espera: añadir, listar, quitar y resumir entradas bajo /api/v2/public/calendar/waitlist/
Todos los campos de una reserva son obligatorios. Esta API no tiene valores por defecto: nunca elige por ti el servicio, el profesional ni el tipo de cita, nunca deriva la hora de fin de una duración y nunca envía una notificación que no hayas configurado. Si un valor no coincide con algo de tu cuenta, la solicitud se rechaza y el error lista lo que sí se habría aceptado.

Conceptos

Una cita se compone de cuatro cosas, y tú aportas las cuatro. Para cada uno de los tres últimos, envía el ID o el nombre. Los IDs se comparan de forma exacta. Los nombres se comparan sin distinguir mayúsculas ni acentos, así que consulta medica encuentra Consulta Médica. Si envías ambos, se usa el ID. Llama a List bookable services una vez para ver los IDs y nombres exactos que acepta tu cuenta:

Horas y el campo timezone

Envía la hora local que le diste al cliente, más la zona IANA a la que pertenece:
No tienes que calcular el desfase UTC ni preocuparte por el horario de verano: las reglas de esa zona en esa fecha se aplican por ti. Si lo prefieres, incluye un desfase explícito (2026-09-15T09:00:00-05:00); entonces el desfase prevalece sobre timezone, que sigue siendo obligatorio. end_at es obligatorio y nunca se deriva de la duración por defecto del servicio: cuánto dura la cita es una afirmación tuya, no algo que la API deduzca.

Dos cosas que esta API hace distinto

  1. Nunca rechaza por disponibilidad. Si la hora cae fuera del horario laboral o choca con otra cita, se agenda igualmente. Tu sistema es dueño de la agenda; Dialtu la registra. No verás un 409 en una reserva normal.
  2. No decide qué mensajes salen. Que el cliente reciba una solicitud de confirmación o recordatorios, y con cuánta antelación, viene de la configuración del propio calendario en Dialtu (Calendario → Configuración → Notificaciones). Una cita agendada por aquí recibe exactamente los mismos mensajes que una agendada en el panel. No hay campos para ello, a propósito: esos mensajes se facturan a la cuenta de Dialtu, así que los elige el dueño de la cuenta.

Una reserva de principio a fin

Guarda data.id: es el ID de la cita en Dialtu. client_created indica si la solicitud creó el cliente (true) o coincidió con uno existente (false).

Comprobar la capacidad antes

Get bookable capacity per service responde “¿cuántas citas más caben?” por servicio en un rango de fechas. capacity se suma por profesional, no por instante — tres profesionales libres a las 09:00 son tres clientes a los que puedes llamar, no un hueco — y es una cota superior: reservar un hueco puede eliminar más de un candidato cuando interactúan los márgenes. Mantén days alineado con la ventana de búsqueda del agente que hará las llamadas, para no encolar clientes a los que el agente luego dirá que no hay disponibilidad.

Conectarlo con n8n

1

Nodo HTTP Request

Método POST, URL https://api.dialtu.com/api/v2/public/calendar/events.
2

Autenticación

Generic Credential TypeHeader Auth, nombre Authorization, valor Bearer pk_xxxxxxxx.
3

Cuerpo

Body Content Type JSON; pega el cuerpo de arriba y sustituye los valores por expresiones de tus nodos anteriores. Consulta una vez los nombres de servicio, profesional y tipo de cita con List bookable services y deja los IDs fijos: nada es opcional.
4

Ante un error

Lee error_code del cuerpo de la respuesta. Ningún 400 merece reintentarse sin cambios; un 500 sí. Ver Errores.

Todavía no disponible

Leer, listar, reprogramar y cancelar citas por la API no está implementado. Cancela o mueve una cita desde el panel de Dialtu. Si eliminas la cita en tu sistema, la de Dialtu se queda: cancélala a mano.