Blog · · 5 min de lectura
Cómo automatizar reservas con Google Calendar y n8n (sin citas duplicadas)
Monta un sistema de citas con n8n: un formulario envía la solicitud, se valida, se consulta Google Calendar y se crea el evento con emails de confirmación, o se ofrecen horas libres si está ocupado.

Si tienes una peluquería, una clínica, una academia o das sesiones como autónomo, seguro que conoces el baile: un cliente pide cita por correo o por WhatsApp, miras el calendario, le propones una hora, te contesta tres horas después y esa hora ya está cogida. O peor: apuntas dos citas a la misma hora sin darte cuenta.
Hay herramientas de reservas de pago que resuelven esto, pero si ya usas Google Calendar puedes montarlo tú con n8n (una herramienta de automatización visual) y Gmail, sin cuotas por usuario y con las reglas de tu negocio.
Qué vas a construir
El flujo hace esto cada vez que alguien pide cita:
- Recibe la solicitud en un webhook de n8n, enviada desde un formulario en tu web (nombre, email, teléfono, servicio, fecha, hora y notas).
- Valida los datos: que el email tenga buena pinta, que el día sea laborable, que la hora esté dentro de tu horario y que se pida con la antelación adecuada.
- Consulta Google Calendar para ver si esa franja se solapa con otra cita.
- Si está libre: crea el evento, manda un email de confirmación al cliente y un aviso a ti.
- Si está ocupado: responde con hasta 3 horas libres de ese mismo día para que el cliente elija otra.
Un detalle importante: este flujo no usa IA. No hace falta. Las reservas son reglas claras (horario, duración, huecos), y así el resultado es predecible y no cuesta nada por cada cita.
Lo que necesitas
- Una instancia de n8n con HTTPS (en la nube o en tu servidor).
- Credenciales Google Calendar OAuth2 y Gmail OAuth2 conectadas en n8n.
- Un formulario sencillo en tu web que haga un
POSTcon los datos en JSON. - Unos 45 minutos y tu horario a mano: hora de apertura y cierre, días laborables y duración de cada cita.
Paso 1: define tus reglas en un solo sitio
Antes de tocar nodos, decide las reglas y ponlas en un nodo de configuración al principio del flujo: nombre del negocio, email, dirección, ID del calendario (primary si es el principal), zona horaria, duración de la cita, horario, días laborables, antelación mínima (por ejemplo, 2 horas) y cuántos días por adelantado se puede reservar. Si mañana cambias el horario, lo cambias ahí y en ningún otro sitio.
Paso 2: el formulario y el webhook
Crea un nodo Webhook que acepte POST y copia su URL de producción. En el formulario de tu web, el botón de enviar manda algo así:
{"name":"Ana","email":"ana@mail.com","phone":"+34611…","service":"Limpieza","date":"2026-11-03","time":"10:30","notes":""}
Añade al formulario un campo trampa oculto: las personas no lo ven, pero los bots lo rellenan, y así puedes descartar esas solicitudes.
Paso 3: valida antes de mirar el calendario
Un nodo de código revisa la solicitud y, si algo falla, responde con un error claro (código 400) y la lista de campos que están mal. Comprueba como mínimo:
- Que hay nombre y un email con formato válido.
- Que la fecha y la hora existen y el día es laborable.
- Que la cita empieza y termina dentro del horario.
- Que no es para dentro de diez minutos ni para dentro de seis meses.
Validar primero evita consultas inútiles al calendario y citas imposibles, como un domingo a las 23:00.
Paso 4: comprueba si el hueco está libre
Con el nodo de Google Calendar, pide los eventos de ese día y comprueba si alguno se solapa con la franja solicitada (inicio de la cita hasta inicio más duración). Ojo con la zona horaria: usa la misma en la configuración, en n8n y en el calendario, o tendrás citas desplazadas una o dos horas.
Si la hora está ocupada, el mismo nodo de código recorre el día en saltos de 30 minutos y devuelve hasta 3 horas libres. El formulario se las enseña al cliente para que elija otra sin tener que escribirte.
Paso 5: crea el evento y confirma por email
Si el hueco está libre, crea el evento en Google Calendar con el nombre del cliente, el servicio y sus datos de contacto en la descripción. Después, dos nodos de Gmail: uno con la confirmación para el cliente (fecha, hora, dirección y cómo cambiar la cita) y otro para ti con el resumen. Por último, el webhook responde ok: true y el formulario muestra el mensaje de reserva confirmada.
Pruébalo antes de enseñárselo a nadie
- Pide una cita en una hora libre: debe aparecer el evento y llegar los dos emails.
- Repite exactamente la misma hora: debe ofrecerte alternativas.
- Pon un email mal escrito o un domingo: debe salir un mensaje de error.
Limitaciones honestas
- Las alternativas son del mismo día. Si el día está lleno, el cliente tendrá que probar otra fecha.
- Dos reservas casi simultáneas. Si dos personas piden la misma hora con un segundo de diferencia, podrían crearse dos eventos, porque no hay bloqueo. Con poco volumen es muy raro, pero si tienes muchas reservas, revisa el calendario.
- Sin enlace de cancelación. Los cambios y cancelaciones se gestionan respondiendo al email.
- Un único horario al día. Si cierras a mediodía, crea en el calendario un evento recurrente «Cerrado»: el flujo lo trata como ocupado.
- El webhook es público. El campo trampa frena a muchos bots; si aun así te llega spam, añade autenticación por cabecera.
Ideas para ir más allá
- Duración distinta según el servicio (30 minutos una limpieza, 60 una primera visita).
- Añadir al cliente como invitado del evento para que Google le mande también su invitación.
- Enlazar el formulario desde tu agente de WhatsApp con IA, para que cuando alguien pregunte por citas reciba directamente el enlace.
Atajo: el agente ya montado
Este flujo es uno de los ocho agentes del pack AgentKiosk: viene como plantilla de n8n lista para importar, con la configuración en un solo nodo, la validación, la búsqueda de alternativas, los emails de confirmación, un formulario HTML listo para pegar en tu web y una guía en PDF. Se ha importado y ejecutado de principio a fin en n8n con datos de ejemplo y servicios simulados; haz tus propias pruebas con tu calendario antes de abrirlo a clientes.
Si quieres empezar por algo gratis, descarga el agente de WhatsApp y echa un vistazo a 7 automatizaciones con IA para pequeños negocios.


