MCP Tools Reference: calendarmcp.googleapis.com

Herramienta: update_event

Actualiza un evento de calendario.

Usa esta herramienta para consultas como las siguientes:

  • Actualiza el evento "Reunión con Ana" para que sea una hora más tarde.
  • Agrega a john.doe@google.com a la reunión de mañana.

Ejemplo:

update_event(
            eventId='event123',
            summary='Meeting with Jane and John'
        )
        # Updates the summary of event with id 'event123' on the primary calendar to 'Meeting with Jane and John'.
        

En el siguiente ejemplo, se muestra cómo usar curl para invocar la herramienta de MCP update_event.

Solicitud de Curl
curl --location 'https://calendarmcp.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_event",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Esquema de entrada

Es el mensaje de solicitud para UpdateEvent.

UpdateEventRequest

Representación JSON
{
  "eventId": string,
  "addedAttendeeEmails": [
    string
  ],
  "removedAttendeeEmails": [
    string
  ],
  "overrideReminders": [
    {
      object (Reminder)
    }
  ],

  "calendarId": string

  "summary": string

  "description": string

  "location": string

  "startTime": string

  "endTime": string

  "notificationLevel": enum (NotificationLevel)

  "addGoogleMeetUrl": boolean

  "visibility": string

  "colorId": string

  "googleMeetUrl": string
}
Campos
eventId

string

Obligatorio. ID del evento que se actualizará.

addedAttendeeEmails[]

string

Opcional. Son los asistentes adicionales del evento, expresados como direcciones de correo electrónico.

removedAttendeeEmails[]

string

Opcional. Direcciones de correo electrónico de los asistentes al evento que se quitarán.

overrideReminders[]

object (Reminder)

Opcional. Son los recordatorios definidos para este evento, que anulan los recordatorios existentes y los recordatorios predeterminados del calendario. Si se configura, reemplazará todos los recordatorios existentes en el evento. Si no se configura, no se actualizarán los recordatorios.

Campo de unión _calendar_id.

_calendar_id puede ser una de las siguientes opciones:

calendarId

string

Opcional. Es el ID del calendario del evento que se actualizará. El valor predeterminado es el calendario principal del usuario.

Campo de unión _summary.

_summary puede ser una de las siguientes opciones:

summary

string

Opcional. Es el nuevo título del evento. No se actualizará si no se configura.

Campo de unión _description.

_description puede ser una de las siguientes opciones:

description

string

Opcional. Es la nueva descripción del evento. No se actualizará si no se configura.

Campo de unión _location.

_location puede ser una de las siguientes opciones:

location

string

Opcional. Es la nueva ubicación del evento. No se actualizará si no se configura.

Campo de unión _start_time.

_start_time puede ser una de las siguientes opciones:

startTime

string

Opcional. Nueva hora de inicio del evento, con formato según ISO 8601. No se actualizará si no se configura.

Campo de unión _end_time.

_end_time puede ser una de las siguientes opciones:

endTime

string

Opcional. Nueva hora de finalización del evento, con el formato ISO 8601. No se actualizará si no se configura.

Campo de unión _notification_level.

_notification_level puede ser una de las siguientes opciones:

notificationLevel

enum (NotificationLevel)

Opcional. Notificación por correo electrónico que se debe enviar para esta actualización del evento. Los valores posibles son:

  • NONE: No se envían notificaciones por correo electrónico (opción predeterminada).
  • EXTERNAL_ONLY: Solo los asistentes externos (que no usan el Calendario) reciben notificaciones por correo electrónico.
  • ALL: Todos los asistentes al evento reciben notificaciones por correo electrónico.

Campo de unión _add_google_meet_url.

_add_google_meet_url puede ser una de las siguientes opciones:

addGoogleMeetUrl

boolean

Opcional. Permite crear o actualizar una URL de Google Meet para el evento. De forma predeterminada, no se crea ni actualiza ninguna URL de Google Meet. No se crea ni se actualiza ninguna URL de Google Meet si Meet está inhabilitado para el usuario, pero la actualización del evento se realizará correctamente.

Campo de unión _visibility.

_visibility puede ser una de las siguientes opciones:

visibility

string

Opcional. Es la nueva visibilidad del evento. Los valores posibles son:

  • default: Usa la visibilidad predeterminada para los eventos del calendario. Este es el valor predeterminado.
  • public: El evento es público y los detalles son visibles para todos los lectores del calendario.
  • private: El evento es privado y solo los asistentes pueden ver sus detalles.

Campo de unión _color_id.

_color_id puede ser una de las siguientes opciones:

colorId

string

Opcional. Es el ID del color nuevo del evento. No se actualizará si no se configura. ID de color del evento (cadena 1-11):

  • 1: Lavanda
  • 2: Sage
  • 3: Uva
  • 4: Flamenco
  • 5: Banana
  • 6: Mandarina
  • 7: Peacock
  • 8: Grafito
  • 9: Índigo
  • 10: Albahaca
  • 11: Tomate

Campo de unión _google_meet_url.

_google_meet_url puede ser una de las siguientes opciones:

googleMeetUrl

string

Opcional. Permite adjuntar una URL o un ID de reunión de Google Meet existentes al evento. Si se configura, esta URL se adjuntará al evento en lugar de generar una nueva sala de Google Meet, incluso si add_google_meet_url se establece en true.

Recordatorio

Representación JSON
{

  "method": string

  "minutes": integer
}
Campos

Campo de unión _method.

_method puede ser una de las siguientes opciones:

method

string

Obligatorio. Es la forma en que se entrega el recordatorio al usuario. Los valores posibles son:

  • email: Los recordatorios se envían por correo electrónico.
  • popup: Los recordatorios se envían a través de una ventana emergente de la IU.

Campo de unión _minutes.

_minutes puede ser una de las siguientes opciones:

minutes

integer

Obligatorio. Cantidad de minutos de anticipación con la que se debe enviar el recordatorio.

Esquema de salida

Evento

Representación JSON
{
  "id": string,
  "status": string,
  "htmlLink": string,
  "created": string,
  "updated": string,
  "summary": string,
  "description": string,
  "location": string,
  "creator": {
    object (Principal)
  },
  "organizer": {
    object (Principal)
  },
  "start": {
    object (DateOrDateTime)
  },
  "end": {
    object (DateOrDateTime)
  },
  "recurrence": [
    string
  ],
  "recurringEventId": string,
  "originalStartTime": {
    object (DateOrDateTime)
  },
  "transparency": string,
  "visibility": string,
  "attendees": [
    {
      object (Attendee)
    }
  ],
  "eventType": string,
  "conferenceUrl": string,
  "colorId": string,
  "overrideReminders": [
    {
      object (Reminder)
    }
  ]
}
Campos
id

string

Es el identificador opaco del evento. Cuando creas eventos únicos o recurrentes nuevos, puedes especificar sus IDs. Los IDs proporcionados deben seguir estas reglas:

  • Los caracteres permitidos en el ID son los que se usan en la codificación base32hex, es decir, las letras en minúscula de la a a la v y los dígitos del 0 al 9.Consulta la sección 3. 1.2 en RFC2938.
  • La longitud del ID debe estar entre 5 y 1,024 caracteres.
  • El ID debe ser único por calendario.

Debido a la naturaleza distribuida a nivel global del sistema, no podemos garantizar que se detecten colisiones de ID en el momento de la creación del evento. Para minimizar el riesgo de colisiones, te recomendamos que uses un algoritmo de UUID establecido, como el que se describe en RFC4122.

Si no especificas un ID, el servidor lo generará automáticamente.

Ten en cuenta que icalUID y el ID no son idénticos, y solo se debe proporcionar uno de ellos en el momento de la creación del evento. Una diferencia en su semántica es que, en los eventos recurrentes, todas las ocurrencias de un evento tienen IDs diferentes, pero todas comparten el mismo icalUID.

status

string

Es el estado del evento. Opcional. Los valores posibles son:

  • confirmed: Se confirmó el evento. Este es el estado predeterminado.
  • tentative: El evento se confirmó de forma tentativa.
  • cancelled: Se canceló (borró) el evento. El método list muestra eventos cancelados solo en la sincronización incremental (cuando se especifican syncToken o updatedMin) o si la marca showDeleted se establece en verdadero. El método get siempre los devuelve.

El estado cancelado representa dos estados diferentes según el tipo de evento:

  1. Las excepciones canceladas de un evento recurrente no cancelado indican que esta instancia ya no se debe presentar al usuario. Los clientes deben almacenar estos eventos durante la vida útil del evento recurrente principal.Solo se garantiza que las excepciones de cancelación tengan valores para los campos id, recurringEventId y originalStartTime completados. Es posible que los otros campos estén vacíos.
  2. Todos los demás eventos cancelados representan eventos borrados. Los clientes deben quitar las copias sincronizadas de forma local. Estos eventos cancelados desaparecerán con el tiempo, por lo que no debes confiar en que estarán disponibles de forma indefinida. Solo se garantiza que los eventos borrados tengan el campo id completado.

En el calendario del organizador, los eventos cancelados siguen exponiendo los detalles del evento (resumen, ubicación, etcétera) para que se puedan restablecer (deshacer la eliminación). Del mismo modo, los eventos a los que se invitó al usuario y que quitó manualmente siguen proporcionando detalles. Sin embargo, las solicitudes de sincronización incrementales con showDeleted establecido como falso no devolverán estos detalles.

Si un evento cambia de organizador (por ejemplo, a través de la operación de movimiento) y el organizador original no está en la lista de asistentes, quedará un evento cancelado en el que solo se garantiza que se completará el campo id.

htmlLink

string

Es un vínculo absoluto a este evento en la IU web del Calendario de Google. Solo lectura.

created

string

Es la fecha y hora de creación del evento (como una marca de tiempo con formato ISO 8601). Solo lectura.

updated

string

Es la fecha y hora de la última modificación de los datos del evento principal (como una marca de tiempo con formato ISO 8601). La actualización de los recordatorios de eventos no provocará este cambio. Solo lectura.

summary

string

Corresponde al título del evento.

description

string

Descripción del evento. Puede contener HTML. Opcional.

location

string

Ubicación geográfica del evento como texto de formato libre. Opcional.

creator

object (Principal)

Es el creador del evento. Solo lectura.

organizer

object (Principal)

Es el organizador del evento. Si el organizador también es asistente, esto se indica con una entrada separada en los asistentes con el campo del organizador establecido en verdadero. Solo lectura.

start

object (DateOrDateTime)

Es la hora de inicio (inclusive) del evento. En el caso de un evento recurrente, esta es la hora de inicio de la primera instancia.

end

object (DateOrDateTime)

Es la hora de finalización (exclusiva) del evento. En el caso de un evento recurrente, esta es la hora de finalización de la primera instancia.

recurrence[]

string

Lista de líneas RRULE, EXRULE, RDATE y EXDATE para un evento recurrente, como se especifica en RFC5545. Ten en cuenta que no se permiten las líneas DTSTART y DTEND en este campo. Las horas de inicio y finalización del evento se especifican en los campos de inicio y finalización. Este campo se omite para eventos únicos o instancias de eventos recurrentes.

recurringEventId

string

En el caso de una instancia de un evento recurrente, es el ID del evento recurrente al que pertenece esta instancia. Inmutable.

originalStartTime

object (DateOrDateTime)

En el caso de una instancia de un evento recurrente, es la hora a la que comenzaría este evento según los datos de recurrencia del evento recurrente identificado por recurringEventId. Identifica de forma única la instancia dentro de la serie de eventos recurrentes, incluso si la instancia se trasladó a otro horario. Inmutable.

transparency

string

Indica si el evento bloquea tiempo en el calendario. Opcional. Los valores posibles son:

  • opaque: Valor predeterminado. El evento bloquea tiempo en el calendario. Esto equivale a configurar Mostrarme como En ocupado en la IU del Calendario.
  • transparent: El evento no bloquea tiempo en el calendario. Esto equivale a configurar Mostrarme como Disponible en la IU del Calendario.
visibility

string

Visibilidad del evento. Opcional. Los valores posibles son:

  • default: Usa la visibilidad predeterminada para los eventos del calendario. Este es el valor predeterminado.
  • public: El evento es público y los detalles son visibles para todos los lectores del calendario.
  • private: El evento es privado y solo los asistentes pueden ver sus detalles.
  • confidential: El evento es privado. Este valor se proporciona por motivos de compatibilidad.
attendees[]

object (Attendee)

Son los asistentes al evento.

eventType

string

Es el tipo específico del evento. Este parámetro no se puede modificar después de crear el evento. Los valores posibles son:

  • birthday: Es un evento especial de todo el día con recurrencia anual.
  • default: Es un evento normal o no se especificó más.
  • focusTime: Es un evento de tiempo dedicado.
  • fromGmail: Es un evento de Gmail. No se puede crear este tipo de evento.
  • outOfOffice: Es un evento fuera de la oficina.
  • workingLocation: Es un evento de ubicación de trabajo.
conferenceUrl

string

Vínculo de Google Meet para el evento.

colorId

string

ID de color del evento (cadena 1-11):

  • 1: Lavanda
  • 2: Sage
  • 3: Uva
  • 4: Flamenco
  • 5: Banana
  • 6: Mandarina
  • 7: Peacock
  • 8: Grafito
  • 9: Índigo
  • 10: Albahaca
  • 11: Tomate

En el Calendario de Google, los colores de los eventos funcionan como categorías que se pueden configurar por evento o por serie. Los usuarios pueden asignar etiquetas personalizadas a los colores en la IU web (p.ej., 1:1s, Break), pero la API solo expone IDs numéricos, no esas etiquetas. Solo afecta tu vista del calendario. Cada asistente controla el color de su propio evento.

overrideReminders[]

object (Reminder)

Son los recordatorios definidos para este evento, que anulan los recordatorios predeterminados del calendario. Si no se establece, se usan los recordatorios predeterminados del calendario.

Principal

Representación JSON
{
  "email": string,
  "displayName": string,
  "self": boolean
}
Campos
email

string

Dirección de correo electrónico del principal (calendario).

displayName

string

Nombre del director, si está disponible.

self

boolean

Indica si este principal corresponde al calendario en el que aparece esta copia del evento. Solo lectura. El valor predeterminado es False.

DateOrDateTime

Representación JSON
{
  "date": string,
  "dateTime": string,
  "timeZone": string
}
Campos
date

string

Es una fecha con formato ISO 8601 a la medianoche (UTC), como 2019-11-20T00:00:00Z. Si se establece este campo, no se debe establecer date_time.

dateTime

string

Es una marca de tiempo con formato ISO 8601, como 2019-11-20T08:19:06-07:00 o 2019-11-20T08:19:06Z. Si se establece este campo, no se debe establecer date.

timeZone

string

Nombre de la zona horaria de TZDB, si está disponible.

Asistente

Representación JSON
{
  "id": string,
  "email": string,
  "displayName": string,
  "organizer": boolean,
  "self": boolean,
  "resource": boolean,
  "optionalAttendee": boolean,
  "responseStatus": string,
  "comment": string,
  "additionalGuests": integer
}
Campos
id

string

ID del perfil del asistente, si está disponible.

email

string

Dirección de correo electrónico del asistente, si está disponible. Este campo debe estar presente cuando se agrega un asistente. Debe ser una dirección de correo electrónico válida según el RFC5322. Se requiere cuando se agrega un asistente.

displayName

string

Nombre del asistente, si está disponible. Opcional.

organizer

boolean

Indica si el asistente es el organizador del evento. Solo lectura. El valor predeterminado es False.

self

boolean

Indica si esta entrada representa el calendario en el que aparece esta copia del evento. Solo lectura. El valor predeterminado es False.

resource

boolean

Indica si el asistente es un recurso. Solo se puede configurar cuando se agrega el asistente al evento por primera vez. Se ignoran las modificaciones posteriores. Opcional. El valor predeterminado es False.

optionalAttendee

boolean

Indica si el asistente es opcional. Opcional. El valor predeterminado es False.

responseStatus

string

Es el estado de respuesta del asistente. Los valores posibles son:

  • needsAction: El asistente no respondió la invitación (se recomienda para eventos nuevos).
  • declined: El asistente rechazó la invitación.
  • tentative: El asistente aceptó la invitación de forma provisoria.
  • accepted: El asistente aceptó la invitación.
comment

string

Es el comentario de respuesta del asistente. Opcional.

additionalGuests

integer

Cantidad de huéspedes adicionales. Opcional. El valor predeterminado es 0.

Recordatorio

Representación JSON
{

  "method": string

  "minutes": integer
}
Campos

Campo de unión _method.

_method puede ser una de las siguientes opciones:

method

string

Obligatorio. Es la forma en que se entrega el recordatorio al usuario. Los valores posibles son:

  • email: Los recordatorios se envían por correo electrónico.
  • popup: Los recordatorios se envían a través de una ventana emergente de la IU.

Campo de unión _minutes.

_minutes puede ser una de las siguientes opciones:

minutes

integer

Obligatorio. Cantidad de minutos de anticipación con la que se debe enviar el recordatorio.

Anotaciones de herramientas

Sugerencia destructiva: ❌ | Sugerencia idempotente: ✅ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ❌