MCP Tools Reference: calendarmcp.googleapis.com

Herramienta: create_event

Crea un evento en el calendario especificado.

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

Solicitud de Curl
curl --location 'https://calendarmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "create_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 CreateEvent.

CreateEventRequest

Representación JSON
{
  "summary": string,
  "startTime": string,
  "endTime": string,
  "attendeeEmails": [
    string
  ],
  "attendees": [
    {
      object (Attendee)
    }
  ],
  "recurrenceData": [
    string
  ],
  "overrideReminders": [
    {
      object (Reminder)
    }
  ],
  "attachments": [
    {
      object (Attachment)
    }
  ],

  "calendarId": string

  "description": string

  "location": string

  "allDay": boolean

  "timeZone": string

  "notificationLevel": enum (NotificationLevel)

  "addGoogleMeetUrl": boolean

  "visibility": string

  "colorId": string

  "googleMeetUrl": string

  "guestPermissions": {
    object (GuestPermissions)
  }

  "availability": enum (Availability)

  "eventType": enum (EventType)

  "workingLocationProperties": {
    object (WorkingLocationProperties)
  }
}
Campos
summary

string

Obligatorio. Título.

startTime

string

Obligatorio. Hora de inicio (ISO 8601, por ejemplo, '2026-04-30T10:00:00Z').

endTime

string

Obligatorio. Hora de finalización (ISO 8601, por ejemplo, '2026-04-30T11:00:00Z').

attendeeEmails[]
(deprecated)

string

Opcional. Obsoleto: Usa attendees en su lugar.

attendees[]

object (Attendee)

Opcional. Son los asistentes al evento. En el caso de los eventos que se crean en el calendario principal del usuario con al menos otro asistente, el usuario actual se agregará automáticamente como asistente si aún no se incluyó.

recurrenceData[]

string

Opcional. Reglas de recurrencia como cadenas RRULE, RDATE o EXDATE (según RFC 5545).

overrideReminders[]

object (Reminder)

Opcional. Los recordatorios anulan los valores predeterminados del calendario.

attachments[]

object (Attachment)

Opcional. Archivos adjuntos

Campo de unión _calendar_id.

_calendar_id puede ser una de las siguientes opciones:

calendarId

string

Opcional. ID del calendario en el que se creará el evento. Dirección de correo electrónico: Se puede resolver con list_calendars. El valor predeterminado es el calendario principal.

Campo de unión _description.

_description puede ser una de las siguientes opciones:

description

string

Opcional. Descripción. Puede contener HTML.

Campo de unión _location.

_location puede ser una de las siguientes opciones:

location

string

Opcional. Ubicación.

Campo de unión _all_day.

_all_day puede ser una de las siguientes opciones:

allDay

boolean

Opcional. Indica si el evento abarca todo el día. Si es verdadero, las horas de inicio y finalización se tratan como la medianoche.

Campo de unión _time_zone.

_time_zone puede ser una de las siguientes opciones:

timeZone

string

Opcional. Nombre de la base de datos de zonas horarias de IANA (por ejemplo, America/Los_Angeles). El valor predeterminado es la zona horaria principal del usuario. Anula los desplazamientos en start_time y end_time.

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.

Campo de unión _add_google_meet_url.

_add_google_meet_url puede ser una de las siguientes opciones:

addGoogleMeetUrl

boolean

Opcional. Crea y agrega una URL de Google Meet. Valor predeterminado: false.

Campo de unión _visibility.

_visibility puede ser una de las siguientes opciones:

visibility

string

Opcional. Visibilidad del evento. Los valores posibles son:

  • default: Usa la visibilidad predeterminada para los eventos del calendario. Valor predeterminado
  • public: El evento es público y los detalles son visibles para todos los lectores del calendario.
  • private: Solo los asistentes al evento pueden ver los detalles del evento.

Campo de unión _color_id.

_color_id puede ser una de las siguientes opciones:

colorId

string

Opcional. Color del evento. Para obtener una lista de los IDs de color, consulta la documentación del recurso Event.

Campo de unión _google_meet_url.

_google_meet_url puede ser una de las siguientes opciones:

googleMeetUrl

string

Opcional. Es la URL o el ID de la reunión de Google Meet específicos. Anula add_google_meet_url.

Campo de unión _guest_permissions.

_guest_permissions puede ser una de las siguientes opciones:

guestPermissions

object (GuestPermissions)

Opcional. Permisos de invitados

Campo de unión _availability.

_availability puede ser una de las siguientes opciones:

availability

enum (Availability)

Opcional. Es el parámetro de configuración de disponibilidad.

Campo de unión _event_type.

_event_type puede ser una de las siguientes opciones:

eventType

enum (EventType)

Opcional. Es el tipo de evento.

Campo de unión _working_location_properties.

_working_location_properties puede ser una de las siguientes opciones:

workingLocationProperties

object (WorkingLocationProperties)

Opcional. Propiedades de la ubicación de trabajo (si eventType es WORKING_LOCATION)

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

Campo de unión _id.

_id puede ser una de las siguientes opciones:

id

string

Solo salida. Es el ID del perfil.

Campo de unión _email.

_email puede ser una de las siguientes opciones:

email

string

Obligatorio. Es la dirección de correo electrónico del asistente.

Campo de unión _display_name.

_display_name puede ser una de las siguientes opciones:

displayName

string

Opcional. Nombre

Campo de unión _organizer.

_organizer puede ser una de las siguientes opciones:

organizer

boolean

Solo salida. Indica si el asistente es el organizador. Valor predeterminado: false.

Campo de unión _self.

_self puede ser una de las siguientes opciones:

self

boolean

Solo salida. Indica si esta entrada representa el calendario en el que aparece esta copia del evento. Valor predeterminado: false.

Campo de unión _resource.

_resource puede ser una de las siguientes opciones:

resource

boolean

Opcional. Indica si el asistente es un recurso (por ejemplo, una sala). Es inmutable y solo se puede configurar cuando se agrega inicialmente el asistente. Valor predeterminado: false.

Campo de unión _optional_attendee.

_optional_attendee puede ser una de las siguientes opciones:

optionalAttendee

boolean

Opcional. Indica si el asistente es opcional. Valor predeterminado: false.

Campo de unión _response_status.

_response_status puede ser una de las siguientes opciones:

responseStatus

string

Opcional. Es el estado de la respuesta. Los valores posibles son:

  • needsAction: El asistente no respondió a 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.

Campo de unión _comment.

_comment puede ser una de las siguientes opciones:

comment

string

Solo salida. Comentario de la respuesta.

Campo de unión _additional_guests.

_additional_guests puede ser una de las siguientes opciones:

additionalGuests

integer

Opcional. Cantidad de huéspedes adicionales. Valor predeterminado: 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 el método de publicación. 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. Minutos de antelación con los que se activa el recordatorio.

GuestPermissions

Representación JSON
{

  "guestsCanInviteOthers": boolean

  "guestsCanModify": boolean

  "guestsCanSeeGuests": boolean
}
Campos

Campo de unión _guests_can_invite_others.

_guests_can_invite_others puede ser una de las siguientes opciones:

guestsCanInviteOthers

boolean

Opcional. Indica si los invitados pueden invitar a otras personas.

Campo de unión _guests_can_modify.

_guests_can_modify puede ser una de las siguientes opciones:

guestsCanModify

boolean

Opcional. Indica si los invitados pueden modificar el evento.

Campo de unión _guests_can_see_guests.

_guests_can_see_guests puede ser una de las siguientes opciones:

guestsCanSeeGuests

boolean

Opcional. Indica si los invitados pueden ver a otros invitados.

Archivo adjunto

Representación JSON
{

  "fileUrl": string

  "title": string
}
Campos

Campo de unión _file_url.

_file_url puede ser una de las siguientes opciones:

fileUrl

string

Obligatorio. Es el vínculo URL al archivo adjunto.

Campo de unión _title.

_title puede ser una de las siguientes opciones:

title

string

Opcional. Título del archivo adjunto.

WorkingLocationProperties

Representación JSON
{

  "type": enum (WorkingLocationType)

  "customLocationLabel": string
}
Campos

Campo de unión _type.

_type puede ser una de las siguientes opciones:

type

enum (WorkingLocationType)

Opcional. Es el tipo de ubicación de trabajo.

Campo de unión _custom_location_label.

_custom_location_label puede ser una de las siguientes opciones:

customLocationLabel

string

Opcional. Es la etiqueta de una ubicación personalizada. Es obligatorio si el tipo es CUSTOM_LOCATION.

NotificationLevel

Nivel de notificación por correo electrónico para las actualizaciones.

Enums
NOTIFICATION_LEVEL_UNSPECIFIED Predeterminado. Se trata como ALL.
NONE No hay notificaciones.
EXTERNAL_ONLY Solo para asistentes externos.
ALL Todos los asistentes

Disponibilidad

Es el parámetro de configuración de disponibilidad de un evento.

Enums
AVAILABILITY_UNSPECIFIED Predeterminado. Se trata como BUSY.
AVAILABILITY_BUSY Bloquea tiempo en el calendario.
AVAILABILITY_FREE No bloquea el tiempo.

EventType

Es el tipo de evento. Es inmutable después de la creación.

Enums
EVENT_TYPE_UNSPECIFIED Se trata como DEFAULT.
DEFAULT Evento normal. Valor predeterminado
OUT_OF_OFFICE Evento fuera de la oficina.
FOCUS_TIME Es un evento de tiempo dedicado.
WORKING_LOCATION Es un evento de ubicación de trabajo.
BIRTHDAY Evento especial de todo el día con recurrencia anual.
FROM_GMAIL Evento de Gmail. No se puede crear este tipo de evento.

WorkingLocationType

Es el tipo de ubicación de trabajo.

Enums
WORKING_LOCATION_TYPE_UNSPECIFIED No se especificó el tipo de ubicación de trabajo. Se tratará como HOME_OFFICE.
HOME_OFFICE Oficina en casa
CUSTOM_LOCATION Ubicación personalizada

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)
    }
  ],
  "conferenceUrl": string,
  "colorId": string,
  "overrideReminders": [
    {
      object (Reminder)
    }
  ],
  "attachments": [
    {
      object (Attachment)
    }
  ],
  "guestPermissions": {
    object (GuestPermissions)
  },
  "eventType": enum (EventType),
  "workingLocationProperties": {
    object (WorkingLocationProperties)
  },
  "availability": enum (Availability)
}
Campos
id

string

Es un identificador único.

status

string

Opcional. Estado. Los valores posibles son:

  • confirmed: El evento está confirmado (valor predeterminado).
  • tentative: El evento se confirmó de forma tentativa.
  • cancelled: Se canceló o borró el evento.

htmlLink

string

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

created

string

Solo salida. Hora de creación (ISO 8601).

updated

string

Solo salida. Hora de la última modificación (ISO 8601).

summary

string

Título.

description

string

Opcional. Descripción. Puede contener HTML.

location

string

Opcional. Ubicación.

creator

object (Principal)

Solo salida. Creador.

organizer

object (Principal)

Solo salida. Organizador. También se muestra en la lista de asistentes si asistes.

start

object (DateOrDateTime)

Hora de inicio (inclusive). En el caso de los eventos recurrentes, se usa la primera instancia.

end

object (DateOrDateTime)

Hora de finalización (no incluida). En el caso de los eventos recurrentes, se usa la primera instancia.

recurrence[]

string

Reglas de recurrencia como cadenas RRULE, EXRULE, RDATE o EXDATE (según RFC 5545) Se omite para eventos únicos. Las horas de inicio y finalización deben establecerse en los campos start y end.

recurringEventId

string

Es el ID del evento recurrente principal para las instancias de eventos recurrentes.

originalStartTime

object (DateOrDateTime)

Es la hora de inicio original de las instancias recurrentes. Es la fecha y hora en la que comenzaría esta instancia según los datos de recurrencia.

transparency
(deprecated)

string

Opcional. Obsoleto: Usa availability en su lugar.

visibility

string

Opcional. Visibilidad del evento. Los valores posibles son:

  • default: Usa la visibilidad predeterminada para los eventos del calendario. Este es el valor predeterminado.
  • public: Los detalles del evento son visibles para todos los lectores del calendario.
  • private: Solo los asistentes al evento pueden ver los detalles del evento.

attendees[]

object (Attendee)

Asistentes

conferenceUrl

string

Vínculo de la videoconferencia.

colorId

string

Color del evento. Solo afecta tu vista del calendario. Es un ID que hace referencia a una entrada en la paleta de colores del calendario (cadena '1'-'11'):

  • 1: Lavanda
  • 2: Sage
  • 3: Uva
  • 4: Flamenco
  • 5: Plátano
  • 6: Mandarina
  • 7: Peacock
  • 8: Grafito
  • 9: Mora azul
  • 10: Albahaca
  • 11: Tomato.

overrideReminders[]

object (Reminder)

Recordatorios. Si no se establece, se recurre a los valores predeterminados del calendario.

attachments[]

object (Attachment)

Archivos adjuntos

guestPermissions

object (GuestPermissions)

Permisos de invitados

eventType

enum (EventType)

Es el tipo de evento.

workingLocationProperties

object (WorkingLocationProperties)

Son las propiedades de la ubicación de trabajo. Se propaga solo cuando event_type es WORKING_LOCATION.

availability

enum (Availability)

Opcional. Es el parámetro de configuración de disponibilidad.

Principal

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

string

el correo electrónico,

displayName

string

Nombre

self

boolean

Solo salida. Indica si este principal corresponde al calendario en el que aparece esta copia del evento. Valor predeterminado: false.

DateOrDateTime

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

string

Fecha ISO 8601 a la medianoche (UTC; por ejemplo, '2019-11-20T00:00:00Z').

dateTime

string

Marca de tiempo ISO 8601 (por ejemplo, '2019-11-20T08:19:06-07:00').

timeZone

string

Nombre de la zona horaria de TZDB.

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

Campo de unión _id.

_id puede ser una de las siguientes opciones:

id

string

Solo salida. Es el ID del perfil.

Campo de unión _email.

_email puede ser una de las siguientes opciones:

email

string

Obligatorio. Es la dirección de correo electrónico del asistente.

Campo de unión _display_name.

_display_name puede ser una de las siguientes opciones:

displayName

string

Opcional. Nombre

Campo de unión _organizer.

_organizer puede ser una de las siguientes opciones:

organizer

boolean

Solo salida. Indica si el asistente es el organizador. Valor predeterminado: false.

Campo de unión _self.

_self puede ser una de las siguientes opciones:

self

boolean

Solo salida. Indica si esta entrada representa el calendario en el que aparece esta copia del evento. Valor predeterminado: false.

Campo de unión _resource.

_resource puede ser una de las siguientes opciones:

resource

boolean

Opcional. Indica si el asistente es un recurso (por ejemplo, una sala). Es inmutable y solo se puede configurar cuando se agrega inicialmente el asistente. Valor predeterminado: false.

Campo de unión _optional_attendee.

_optional_attendee puede ser una de las siguientes opciones:

optionalAttendee

boolean

Opcional. Indica si el asistente es opcional. Valor predeterminado: false.

Campo de unión _response_status.

_response_status puede ser una de las siguientes opciones:

responseStatus

string

Opcional. Es el estado de la respuesta. Los valores posibles son:

  • needsAction: El asistente no respondió a 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.

Campo de unión _comment.

_comment puede ser una de las siguientes opciones:

comment

string

Solo salida. Comentario de la respuesta.

Campo de unión _additional_guests.

_additional_guests puede ser una de las siguientes opciones:

additionalGuests

integer

Opcional. Cantidad de huéspedes adicionales. Valor predeterminado: 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 el método de publicación. 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. Minutos de antelación con los que se activa el recordatorio.

Archivo adjunto

Representación JSON
{

  "fileUrl": string

  "title": string
}
Campos

Campo de unión _file_url.

_file_url puede ser una de las siguientes opciones:

fileUrl

string

Obligatorio. Es el vínculo URL al archivo adjunto.

Campo de unión _title.

_title puede ser una de las siguientes opciones:

title

string

Opcional. Título del archivo adjunto.

GuestPermissions

Representación JSON
{

  "guestsCanInviteOthers": boolean

  "guestsCanModify": boolean

  "guestsCanSeeGuests": boolean
}
Campos

Campo de unión _guests_can_invite_others.

_guests_can_invite_others puede ser una de las siguientes opciones:

guestsCanInviteOthers

boolean

Opcional. Indica si los invitados pueden invitar a otras personas.

Campo de unión _guests_can_modify.

_guests_can_modify puede ser una de las siguientes opciones:

guestsCanModify

boolean

Opcional. Indica si los invitados pueden modificar el evento.

Campo de unión _guests_can_see_guests.

_guests_can_see_guests puede ser una de las siguientes opciones:

guestsCanSeeGuests

boolean

Opcional. Indica si los invitados pueden ver a otros invitados.

WorkingLocationProperties

Representación JSON
{

  "type": enum (WorkingLocationType)

  "customLocationLabel": string
}
Campos

Campo de unión _type.

_type puede ser una de las siguientes opciones:

type

enum (WorkingLocationType)

Opcional. Es el tipo de ubicación de trabajo.

Campo de unión _custom_location_label.

_custom_location_label puede ser una de las siguientes opciones:

customLocationLabel

string

Opcional. Es la etiqueta de una ubicación personalizada. Es obligatorio si el tipo es CUSTOM_LOCATION.

EventType

Es el tipo de evento. Es inmutable después de la creación.

Enums
EVENT_TYPE_UNSPECIFIED Se trata como DEFAULT.
DEFAULT Evento normal. Valor predeterminado
OUT_OF_OFFICE Evento fuera de la oficina.
FOCUS_TIME Es un evento de tiempo dedicado.
WORKING_LOCATION Es un evento de ubicación de trabajo.
BIRTHDAY Evento especial de todo el día con recurrencia anual.
FROM_GMAIL Evento de Gmail. No se puede crear este tipo de evento.

WorkingLocationType

Es el tipo de ubicación de trabajo.

Enums
WORKING_LOCATION_TYPE_UNSPECIFIED No se especificó el tipo de ubicación de trabajo. Se tratará como HOME_OFFICE.
HOME_OFFICE Oficina en casa
CUSTOM_LOCATION Ubicación personalizada

Disponibilidad

Es el parámetro de configuración de disponibilidad de un evento.

Enums
AVAILABILITY_UNSPECIFIED Predeterminado. Se trata como BUSY.
AVAILABILITY_BUSY Bloquea tiempo en el calendario.
AVAILABILITY_FREE No bloquea el tiempo.

Anotaciones de herramientas

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

Alcances de la autorización

Se necesita uno de los siguientes alcances de OAuth:

  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.events