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:

FormaCuándoCómo
Del CreateAcabas de crear el evento en este workflowEl nodo Create devuelve el id del evento creado — guárdalo
De un Get ManyBuscas el evento en la agendaEl lookup te devuelve eventos con su id
Guardado en otro ladoLo creaste antes y lo registrasteLo 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 id en 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ónOperación
La cita cambia de hora pero sigue siendo la misma citaUpdate (cambiar Start/End)
La cita se cancela y no se reprogramaDelete (o Update a [CANCELADA])
La cita se cancela y se agenda una totalmente distintaDelete el viejo + Create el nuevo
No estás seguro de si el evento existeGet 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

  1. Crear y guardar el ID: Manual Trigger → Google Calendar (Create) → mira el output y localiza el id del evento creado
  2. Actualizar directo: en el mismo workflow, agrega un Google Calendar (Update) que use ese id para cambiar el título a [ACTUALIZADO] ... y mover la hora 1 hora más tarde (recalcula el End)
  3. Buscar + actualizar: workflow nuevo — Get Many (busca un evento por título) → IF (length > 0) → Update usando el id del lookup
  4. 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

  1. n8n Google Calendar node Docs - Operaciones Update y Delete.
  2. Google Calendar: editar eventos - Cómo Google maneja los cambios y notificaciones.
  3. n8n Google Sheets node Docs - Para guardar Event IDs de forma persistente.

Creado: Mayo 14, 2026 Versión: 1.0