Módulo 3: Google Calendar
Actualizar y Eliminar Eventos
Descripción de la cápsula
Un evento no es estático. Las citas se reprograman, las reuniones se cancelan, a un evento se le suma un invitado o se le cambia la ubicación. Para automatizar Calendar de verdad necesitas las dos operaciones que cierran el ciclo de vida de un evento: Update (modificar) y Delete (cancelar).
Y ambas comparten un protagonista: el ID del evento. Para crear un evento no necesitas un ID — Google te lo asigna. Pero para actualizar o eliminar uno, tienes que saber a cuál apuntas. Igual que con Update en Google Sheets (Módulo 1), la pregunta central es "¿cuál?". La diferencia: en Sheets apuntabas por una columna clave; en Calendar apuntas por el ID del evento.
Esta cápsula te enseña a obtener ese ID, a usarlo para modificar y cancelar, y a manejar el caso delicado de actualizar eventos con invitados — porque cada cambio les llega como una notificación.
Lo que vas a aprender
Al terminar esta cápsula serás capaz de:
- ✅ Obtener el ID de un evento y guardarlo para usarlo después
- ✅ Actualizar un evento: cambiar hora, título, invitados, ubicación
- ✅ Eliminar (cancelar) un evento
- ✅ Entender cómo Update afecta a los invitados (notificaciones)
- ✅ Combinar buscar + actualizar cuando no tienes el ID a la mano
- ✅ Decidir entre actualizar, eliminar y crear nuevo
El protagonista: el Event ID
Para Update y Delete necesitas el Event ID. Hay tres formas de tenerlo:
| Forma | Cuándo | Cómo |
|---|---|---|
| Del Create | Acabas de crear el evento en este workflow | El nodo Create devuelve el id del evento creado — guárdalo |
| De un Get Many | Buscas el evento en la agenda | El lookup te devuelve eventos con su id |
| Guardado en otro lado | Lo creaste antes y lo registraste | Lo lees de una hoja, una base de datos, etc. |
Patrón importante: si tu workflow crea un evento y podría necesitar modificarlo después, guarda su
iden algún lado persistente — típicamente una columna en una hoja de Google Sheets. "Creé la cita de Ana, su Event ID es X" → cuando Ana reprograme, buscas su fila, sacas el ID, y actualizas. Sin el ID guardado, tendrías que buscar el evento a ciegas cada vez.
Actualizar un evento
Configuración del nodo Google Calendar:
- Resource:
Event - Operation:
Update - Calendar: el calendario donde está el evento
- Event ID:
{{ $json.id }}— el evento a modificar - Update Fields: solo los campos que quieres cambiar
Update es quirúrgico (como en Sheets)
Igual que el Update de Google Sheets del Módulo 1: solo se modifican los campos que incluyes. Si solo pones un Start nuevo, el título, los invitados y la descripción se quedan como estaban.
Ejemplos de cambios típicos:
Reprogramar (cambiar hora):
Start: {{ $json.new_date }}
End: {{ $json.new_date.plus({ minutes: 30 }) }}
Cambiar el título:
Summary: [REPROGRAMADA] Llamada con {{ $json.name }}
Cambiar la ubicación:
Location: Google Meet (link en la descripción)
Recuerda la regla de la cápsula 03: si cambias el Start, recalcula el End. Un Update que mueve el inicio pero deja el fin viejo crea un evento con duración rara o negativa.
Update y los invitados: cuidado
Esta es la parte delicada. Si el evento tiene invitados (Attendees), cada Update puede generarles una notificación: "El evento X ha cambiado".
Consecuencias:
- Reprogramas una cita 3 veces mientras pruebas → el cliente recibe 3 notificaciones de cambio
- Un workflow con bug que actualiza en loop → spam de notificaciones a gente real
Cómo manejarlo
- En desarrollo: prueba con eventos sin invitados o con tus propios correos. Nunca con clientes reales.
- Algunos nodos ofrecen una opción tipo "Send Updates" / "Send Notifications" que controla si los invitados son avisados del cambio. Si existe, decídelo conscientemente: ¿este cambio amerita avisar, o es un ajuste menor?
- Agrupa los cambios: si vas a modificar varias cosas de un evento, hazlo en un solo Update, no en tres. Un cambio = una notificación.
Eliminar un evento
Configuración:
- Resource:
Event - Operation:
Delete - Calendar: el calendario
- Event ID:
{{ $json.id }}
Eso cancela el evento. Si tenía invitados, normalmente reciben una notificación de cancelación.
Eliminar es definitivo
Delete no tiene "deshacer". Una vez eliminado, el evento se va. A diferencia de una fila en Sheets (que puedes ver antes de borrar) o un correo (que va a la papelera), un evento eliminado por workflow desaparece. Antes de poner un Delete en un workflow que corre solo, pregúntate: ¿qué pasa si elimina el evento equivocado? Si la respuesta es grave, agrega salvaguardas (un IF que verifique, un paso de confirmación).
Alternativa: marcar en vez de borrar
A veces "cancelar" no tiene que ser "borrar". Opciones más suaves:
- Update el título a
[CANCELADA] ...— el evento sigue visible, queda claro que no va - Update la descripción con el motivo de cancelación
- Borrar de verdad solo cuando estés seguro
Cuando no tienes el ID: buscar + actualizar
El caso real más común: llega "Ana quiere reprogramar su cita" pero tu workflow no tiene el Event ID a la mano. Hay que encontrarlo primero.
Trigger (Ana reprograma)
│
▼
Google Calendar (Get Many) ── busca la cita de Ana (rango + identificador)
│
▼
IF: ¿se encontró el evento?
│
┌──────────┴──────────┐
▼ SÍ ▼ NO
Google Calendar avisar "no encontramos
(Update, Event ID = tu cita" / crear una nueva
{{ $json.id }} del
lookup)
Es el patrón "buscar antes de actuar" otra vez: el lookup (Get Many) te da el id, y ese id alimenta el Update. Y la rama "NO se encontró" importa — si Ana no tenía cita, no puedes actualizar nada; hay que decidir qué hacer (avisar, o crear).
Decidir: actualizar, eliminar o crear nuevo
| Situación | Operación |
|---|---|
| La cita cambia de hora pero sigue siendo la misma cita | Update (cambiar Start/End) |
| La cita se cancela y no se reprograma | Delete (o Update a [CANCELADA]) |
| La cita se cancela y se agenda una totalmente distinta | Delete el viejo + Create el nuevo |
| No estás seguro de si el evento existe | Get Many primero, luego decidir |
Regla: si es "la misma cita, distinto detalle" → Update. Si es "ya no va" → Delete. Si es "otra cosa distinta" → Delete + Create. No uses Create para reprogramar — dejarías el evento viejo huérfano en la agenda.
Trampas comunes
Trampa 1: Update sin tener el Event ID correcto
Qué pasa: Pasas un ID equivocado (o vacío, o un threadId de otro contexto) y el Update falla o toca el evento equivocado.
Cómo evitar: Asegúrate de que el id viene del evento correcto — del Create reciente, del Get Many, o de donde lo guardaste. Verifícalo mirando el output.
Trampa 2: Cambiar el Start y olvidar el End
Qué pasa: Reprogramas el inicio pero el fin queda en la hora vieja → evento de duración rara.
Cómo evitar: Al cambiar el Start, siempre recalcula el End = Start + duración.
Trampa 3: Spam de notificaciones a invitados
Qué pasa: Pruebas el Update varias veces sobre un evento con invitados reales. Cada prueba les manda "el evento cambió".
Cómo evitar: En desarrollo, eventos sin invitados o con tus correos. Agrupa cambios en un solo Update.
Trampa 4: Delete sin red de seguridad
Qué pasa: Un workflow con Delete tiene un bug y elimina eventos que no debía. No hay deshacer.
Cómo evitar: Antes de un Delete automático, un IF que confirme que es el evento correcto. O usa la alternativa suave (Update a [CANCELADA]).
Trampa 5: Usar Create para reprogramar
Qué pasa: "Ana cambió de hora" → creas un evento nuevo → ahora Ana tiene dos citas en la agenda, la vieja y la nueva.
Cómo evitar: Reprogramar = Update del evento existente. Solo Delete + Create si de verdad es un evento distinto.
Ejercicio: el ciclo de vida de un evento
Objetivo: practicar Update y Delete con el ID, y el patrón buscar + actualizar.
Tu tarea
- Crear y guardar el ID: Manual Trigger → Google Calendar (Create) → mira el output y localiza el
iddel evento creado - Actualizar directo: en el mismo workflow, agrega un Google Calendar (Update) que use ese
idpara cambiar el título a[ACTUALIZADO] ...y mover la hora 1 hora más tarde (recalcula el End) - Buscar + actualizar: workflow nuevo — Get Many (busca un evento por título) → IF (length > 0) → Update usando el
iddel lookup - Eliminar: agrega al final un Google Calendar (Delete) con el
id. Verifica en calendar.google.com que el evento desapareció
Ver pistas
- En el 2, el Update toma
Event ID = {{ $json.id }}del nodo Create anterior. Cambia Summary, Start y End. - En el 3, la condición del IF es
{{ $('Google Calendar').all().length > 0 }}(aquí queremos la rama "SÍ existe"). - En el 4, usa un evento de prueba que no te importe perder — Delete es definitivo.
Resumen y siguiente paso
- Update y Delete necesitan el Event ID — obtenlo del Create, de un Get Many, o de donde lo guardaste
- Si un evento podría modificarse después, guarda su ID en algo persistente (una columna en Sheets)
- Update es quirúrgico: solo cambia los campos que incluyes; al mover el Start, recalcula el End
- Update y Delete sobre eventos con invitados generan notificaciones — en desarrollo usa eventos sin invitados o tus propios correos
- Delete es definitivo, sin deshacer — protégelo con un IF, o usa la alternativa suave (Update a
[CANCELADA]) - Decide: misma cita distinto detalle → Update; ya no va → Delete; otra cosa → Delete + Create. Nunca Create para reprogramar
- 5 trampas: ID equivocado, olvidar el End, spam de notificaciones, Delete sin red, Create para reprogramar
Antes de avanzar deberías poder:
- Actualizar y eliminar un evento usando su ID
- Combinar Get Many + Update cuando no tienes el ID
- Elegir entre actualizar, eliminar y crear nuevo
Lo que sigue (cápsula 06):
Ya dominas las cuatro operaciones (crear, leer, actualizar, eliminar). Ahora el tema que atraviesa todas: zonas horarias y recordatorios. Por qué un evento "a las 10:00" termina a las 4:00, cómo configurar avisos, y qué son los eventos recurrentes. Es la cápsula que hace que tus eventos queden a la hora correcta.
Recursos adicionales
- n8n Google Calendar node Docs - Operaciones Update y Delete.
- Google Calendar: editar eventos - Cómo Google maneja los cambios y notificaciones.
- n8n Google Sheets node Docs - Para guardar Event IDs de forma persistente.
Creado: Mayo 14, 2026 Versión: 1.0