Blog · · 4 min de lectura
Recordatorios de citas automáticos con n8n y Google Calendar (email y WhatsApp)
Cómo montar en n8n un flujo que avisa a tus clientes 24 horas antes de su cita, por email o por WhatsApp, leyendo directamente tu Google Calendar. Paso a paso, sin base de datos.

Si trabajas con citas (clínica, peluquería, fisioterapia, asesoría, taller), conoces el problema: alguien reserva, se le olvida y el hueco se queda vacío. La solución clásica es llamar uno a uno el día antes. La automática es que un flujo lea tu calendario y avise a cada cliente sin que tú hagas nada.
En esta guía montamos ese flujo en n8n con Google Calendar, enviando el recordatorio por email y, si quieres, por WhatsApp.
Cómo funciona, en una frase
Cada hora, n8n mira qué citas empiezan dentro de 24 horas, saca el contacto del cliente del propio evento y le manda un mensaje con la fecha, la hora y cómo cambiarla.
No necesitas base de datos ni hojas de cálculo: el calendario es la única fuente de verdad.
Lo que necesitas
- n8n funcionando (si aún no lo tienes, mira cómo instalar n8n gratis con Docker).
- Un Google Calendar donde estén tus citas.
- Una cuenta de Gmail (o cualquier SMTP) para los emails.
- Opcional: la API de WhatsApp Cloud configurada, para el recordatorio por WhatsApp (guía para conectarla a n8n).
Paso 1: guarda el contacto del cliente en el evento
El flujo solo puede avisar a quien sepa encontrar. Acostumbra a crear las citas con el email y, si lo tienes, el teléfono en la descripción, siempre con el mismo formato:
Email: cliente@ejemplo.com
Tel: +34600000000
Si las reservas te llegan por un formulario automático (como el del flujo de reservas con Google Calendar), haz que escriba la descripción así y no tendrás que tocar nada a mano.
Paso 2: el disparador, cada hora
Añade un nodo Schedule Trigger que se ejecute cada hora, en el minuto 0. Cada ejecución se encarga de una franja de una hora, así que ninguna cita se avisa dos veces ni se queda sin aviso.
Paso 3: leer las citas de dentro de 24 horas
Añade un nodo Google Calendar con la operación de obtener varios eventos (Get Many) y usa los filtros de inicio y fin para pedir solo los eventos que empiezan entre dentro de 24 horas y dentro de 25 horas. Con expresiones de n8n:
Después de: {{ $now.plus({ hours: 24 }).startOf('hour').toISO() }}
Antes de: {{ $now.plus({ hours: 25 }).startOf('hour').toISO() }}
Marca también que expanda los eventos recurrentes, para que las citas que se repiten cada semana salgan como citas individuales.
Paso 4: sacar el email y el teléfono
Un nodo Code lee la descripción de cada evento y separa los datos:
return $input.all().map(item => {
const d = item.json.description || '';
const email = (d.match(/Email:\s*([^\s<]+@[^\s<]+)/i) || [])[1] || null;
const tel = (d.match(/Tel:\s*(\+?\d{8,15})/i) || [])[1] || null;
return { json: {
titulo: item.json.summary,
inicio: item.json.start.dateTime || item.json.start.date,
email, tel
}};
});
Después, un nodo IF deja pasar solo los eventos que tienen email o teléfono. Así los bloqueos personales («Comida», «Cerrado») no generan avisos.
Paso 5: el recordatorio por email
Con un nodo Gmail (o Send Email) envía algo corto y claro:
Asunto: Recordatorio: tu cita de mañana a las {{hora}}
Hola, te recordamos tu cita en [Nombre del negocio] mañana a las {{hora}}. Si necesitas cambiarla o no puedes venir, responde a este email y te buscamos otro hueco.
Formatea la hora con la zona horaria de tu negocio, por ejemplo {{ DateTime.fromISO($json.inicio).setZone('Europe/Madrid').toFormat('HH:mm') }}, para que nadie reciba una hora en UTC.
Paso 6 (opcional): el recordatorio por WhatsApp
WhatsApp suele leerse antes que el email, pero tiene una regla importante: si el cliente no te ha escrito en las últimas 24 horas, solo puedes iniciar la conversación con una plantilla aprobada por Meta. Para recordatorios se usa una plantilla de categoría utilidad, con variables para la fecha y la hora.
Una vez aprobada, añade un nodo HTTP Request que llame a la API de WhatsApp Cloud con el número del cliente, el nombre de la plantilla y las variables. Meta cobra por las conversaciones iniciadas con plantilla según el país; consulta sus precios actuales antes de activarlo para todos tus clientes.
Errores frecuentes
- Avisos duplicados. Pasan cuando la franja de búsqueda es más larga que la frecuencia del disparador. Franja de 1 hora y ejecución cada hora, siempre a la par.
- Horas cambiadas. Configura la zona horaria en los ajustes del flujo y en el formato del mensaje. Ojo con el cambio de hora de octubre y marzo.
- Datos con formatos distintos. Si unas veces escribes «Email:» y otras «correo», el flujo no los encontrará. Un formato fijo, o un formulario que lo escriba por ti.
- Permiso para escribir. Avisa en la reserva de que enviarás un recordatorio; en WhatsApp, el cliente debe haber aceptado recibir mensajes tuyos.
Ideas para ir más allá
- Un segundo aviso dos horas antes, con otro flujo igual y otra franja.
- Un botón o enlace para confirmar asistencia, que cambie el color del evento en el calendario.
- Un mensaje automático después de la cita pidiendo una reseña, y contestarlas con el flujo de respuestas a reseñas de Google con IA.
Atajo: las reservas ya montadas
El recordatorio funciona mejor cuando las citas entran solas y con los datos bien escritos. El agente de reservas con Google Calendar del pack AgentKiosk recoge la cita desde un formulario de tu web, comprueba la disponibilidad, propone alternativas y manda la confirmación, todo como plantilla de n8n lista para importar.
Si quieres empezar por algo gratis, descarga el agente de WhatsApp y echa un vistazo a 7 automatizaciones con IA para pequeños negocios.


