MCP Tools Reference: calendarmcp.googleapis.com

Ferramenta: list_events

Lista os eventos de uma determinada agenda que atendem às condições especificadas.

Principais recursos:

  • Qualquer ID de agenda, que pode ser a agenda principal do usuário ou outras.
  • Filtragem por período.
  • Recupera TODOS os eventos que correspondem às restrições de tempo.

Se disponível, use a ferramenta search_events para pesquisas na agenda principal do usuário se:

  • Você está consultando eventos que correspondem a um tópico, categoria ou objetivo específico (por exemplo, "reuniões de almoço", "sincronizações de projeto").
  • Você precisa encontrar os eventos mais relevantes (K principais) em vez de todos os eventos que atendem às restrições.
  • Você precisa de recursos de pesquisa semântica ou por palavra-chave.

Use essa ferramenta para consultas como:

  • O que tem na minha agenda amanhã?
  • O que tem na minha agenda para 14 de julho de 2025?
  • Quais são minhas reuniões na semana que vem?
  • Tenho algum conflito de horário hoje à tarde?
  • Quais reuniões o João tem amanhã?

Exemplo:

list_events(
            startTime='2024-09-17T06:00:00',
            endTime='2024-09-17T12:00:00',
            pageSize=10
        )
        # Returns up to 10 calendar events between 6:00 AM and 12:00 PM on September 17, 2024 from the user's primary calendar.
        

O exemplo a seguir demonstra como usar curl para invocar a ferramenta list_events MCP.

Solicitação 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": "list_events",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Esquema de entrada

ListEventsRequest

Representação JSON
{
  "eventTypeFilter": [
    string
  ],

  "calendarId": string

  "pageSize": integer

  "pageToken": string

  "startTime": string

  "endTime": string

  "timeZone": string

  "orderBy": string

  "fullText": string
}
Campos
eventTypeFilter[]

string

Opcional. Os tipos de evento a serem retornados. Os valores possíveis são:

  • default: eventos regulares (padrão).
  • outOfOffice: eventos fora do escritório.
  • focusTime: eventos de horário de concentração.
  • workingLocation: eventos de local de trabalho.
  • birthday: eventos de aniversário.
  • fromGmail - Eventos do Gmail.

Se estiver vazio, somente os seguintes tipos de eventos serão retornados: default, outOfOffice, focusTime, fromGmail

Campo de união _calendar_id.

_calendar_id pode ser apenas de um dos tipos a seguir:

calendarId

string

Opcional. O ID da agenda para listar eventos. O padrão é a agenda principal do usuário.

Campo de união _page_size.

_page_size pode ser apenas de um dos tipos a seguir:

pageSize

integer

Opcional. Número máximo de eventos retornados em uma página de resultados. O número de eventos na página resultante pode ser menor que esse valor ou nenhum, mesmo que haja mais eventos correspondentes à consulta. As páginas incompletas podem ser detectadas por um campo next_page_token não vazio na resposta. Por padrão, o valor é de 250 eventos. O tamanho da página nunca pode ser maior que 2.500 eventos.

Campo de união _page_token.

_page_token pode ser apenas de um dos tipos a seguir:

pageToken

string

Opcional. Token que especifica qual página de resultados retornar.

Campo de união _start_time.

_start_time pode ser apenas de um dos tipos a seguir:

startTime

string

Opcional. Limite inferior (exclusivo) para o horário de término de um evento. Somente eventos que terminam estritamente depois desse horário são retornados (ou seja, o início do período de pesquisa). O padrão é o horário atual se nem start_time nem end_time forem fornecidos. Se especificado, precisa ser menor ou igual a end_time. Precisa ser uma data e hora ISO 8601. Por exemplo, 2026-06-03T10:00:00-07:00, 2026-06-03T10:00:00Z ou 2026-06-03T10:00:00. Os milissegundos podem ser fornecidos, mas são ignorados.

Campo de união _end_time.

_end_time pode ser apenas de um dos tipos a seguir:

endTime

string

Opcional. Limite superior (exclusivo) para o horário de início de um evento. Somente eventos que começam estritamente antes desse horário são retornados (ou seja, o fim do período de pesquisa). Se especificado, precisa ser maior ou igual a start_time. Precisa ser uma data e hora ISO 8601. Por exemplo, 2026-06-03T10:00:00-07:00, 2026-06-03T10:00:00Z ou 2026-06-03T10:00:00. Os milissegundos podem ser fornecidos, mas são ignorados.

Campo de união _time_zone.

_time_zone pode ser apenas de um dos tipos a seguir:

timeZone

string

Opcional. Fuso horário usado na resposta e para resolver datas sem fuso horário na solicitação (formatado como um nome do banco de dados de fusos horários da IANA, por exemplo, Europe/Zurich). O padrão é o fuso horário da agenda.

Campo de união _order_by.

_order_by pode ser apenas de um dos tipos a seguir:

orderBy

string

Opcional. A ordem em que os eventos devem ser retornados. Os valores possíveis são:

  • default: não especificado, mas com ordenação determinística (padrão).
  • startTime: ordena por horário de início em ordem crescente.
  • startTimeDesc: ordena por horário de início em ordem decrescente.
  • lastModified: ordena pelo horário da última modificação em ordem crescente.

Campo de união _full_text.

_full_text pode ser apenas de um dos tipos a seguir:

fullText

string

Opcional. Consulta de pesquisa de formato livre para pesquisar em título, descrição, local e participantes.

Esquema de saída

ListEventsResponse

Representação JSON
{
  "summary": string,
  "description": string,
  "updated": string,
  "timeZone": string,
  "accessRole": string,
  "defaultReminders": [
    {
      object (Reminder)
    }
  ],
  "events": [
    {
      object (Event)
    }
  ],

  "nextPageToken": string
}
Campos
summary

string

Título da agenda.

description

string

Descrição da agenda.

updated

string

Horário da última modificação do calendário (como um carimbo de data/hora ISO 8601).

timeZone

string

O fuso horário da agenda.

accessRole

string

A função de acesso do usuário para essa agenda. Somente leitura. Os valores possíveis são:

  • none: o usuário não tem acesso.
  • freeBusyReader: o usuário tem acesso de leitura às informações de disponibilidade/ocupação.
  • reader: o usuário tem acesso de leitura à agenda. Os eventos particulares vão aparecer para usuários com acesso de leitura, mas os detalhes vão ficar ocultos.
  • writer: o usuário tem acesso de leitura e gravação à agenda. Os eventos particulares vão aparecer para usuários com acesso de gravação, e os detalhes do evento vão ficar visíveis.
  • owner: o usuário tem acesso de administrador à agenda. Essa função tem todas as permissões da função de gravador, além da capacidade de ver e modificar os níveis de acesso de outros usuários. Importante: a função de proprietário é diferente do proprietário dos dados da agenda. Uma agenda tem um único proprietário de dados, mas pode ter vários usuários com a função de proprietário.
defaultReminders[]

object (Reminder)

Os lembretes padrão na agenda do usuário autenticado. Esses lembretes são válidos para todos os eventos da agenda que não os substituem explicitamente (ou seja, não preenchem override_reminders).

events[]

object (Event)

Lista de eventos na agenda.

Campo de união _next_page_token.

_next_page_token pode ser apenas de um dos tipos a seguir:

nextPageToken

string

Token usado para acessar a próxima página deste resultado. Omitido se não houver mais resultados disponíveis.

Lembrete

Representação JSON
{

  "method": string

  "minutes": integer
}
Campos

Campo de união _method.

_method pode ser apenas de um dos tipos a seguir:

method

string

Obrigatório. Como o lembrete é entregue ao usuário. Os valores possíveis são:

  • email: os lembretes são enviados por e-mail.
  • popup: os lembretes são enviados por um pop-up da interface.

Campo de união _minutes.

_minutes pode ser apenas de um dos tipos a seguir:

minutes

integer

Obrigatório. Número de minutos antes do lembrete ser enviado.

Evento

Representação 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

Identificador opaco do evento. Ao criar eventos únicos ou recorrentes, você pode especificar os IDs deles. Os IDs fornecidos precisam seguir estas regras:

  • Os caracteres permitidos no ID são aqueles usados na codificação base32hex, ou seja, letras minúsculas de a a v e dígitos de 0 a 9.Consulte a seção 3. 1.2 em RFC2938.
  • O ID precisa ter entre 5 e 1.024 caracteres.
  • o ID precisa ser exclusivo por calendário

Devido à natureza distribuída globalmente do sistema, não podemos garantir que colisões de ID serão detectadas no momento da criação do evento. Para minimizar o risco de colisões, recomendamos usar um algoritmo UUID estabelecido, como o descrito na RFC4122.

Se você não especificar um ID, ele será gerado automaticamente pelo servidor.

O icalUID e o ID não são idênticos, e apenas um deles deve ser fornecido no momento da criação do evento. Uma diferença na semântica é que, em eventos recorrentes, todas as ocorrências de um evento têm IDs diferentes, mas compartilham os mesmos icalUIDs.

status

string

Status do evento. Opcional. Os valores possíveis são:

  • confirmed: o evento está confirmado. Esse é o status padrão.
  • tentative: o evento está provisoriamente confirmado.
  • cancelled: o evento foi cancelado (excluído). O método list retorna eventos cancelados apenas na sincronização incremental (quando syncToken ou updatedMin são especificados) ou se a flag showDeleted estiver definida como "true". O método "get" sempre os retorna.

Um status cancelado representa dois estados diferentes, dependendo do tipo de evento:

  1. Exceções canceladas de um evento recorrente não cancelado indicam que essa instância não deve mais ser apresentada ao usuário. Os clientes precisam armazenar esses eventos durante todo o ciclo de vida do evento recorrente principal.As exceções canceladas só têm valores garantidos para os campos "id", "recurringEventId" e "originalStartTime" preenchidos. Os outros campos podem estar vazios.
  2. Todos os outros eventos cancelados representam eventos excluídos. Os clientes precisam remover as cópias sincronizadas localmente. Esses eventos cancelados vão desaparecer com o tempo. Portanto, não confie que eles vão ficar disponíveis indefinidamente. Os eventos excluídos têm apenas o campo "id" preenchido.

Na agenda do organizador, os eventos cancelados continuam mostrando os detalhes (resumo, local etc.) para que possam ser restaurados (recuperados). Da mesma forma, os eventos para os quais o usuário foi convidado e que ele removeu manualmente continuam fornecendo detalhes. No entanto, as solicitações de sincronização incremental com "showDeleted" definido como "false" não vão retornar esses detalhes.

Se um evento mudar de organizador (por exemplo, usando a operação de movimentação) e o organizador original não estiver na lista de participantes, um evento cancelado será deixado para trás, em que apenas o campo "id" terá preenchimento garantido.

htmlLink

string

Um link absoluto para esse evento na interface da Web do Google Agenda. Somente leitura.

created

string

Hora de criação do evento (como um carimbo de data/hora formatado em ISO 8601). Somente leitura.

updated

string

Horário da última modificação dos dados de eventos principais (como um carimbo de data/hora formatado em ISO 8601). Atualizar os lembretes de eventos não vai mudar isso. Somente leitura.

summary

string

Título do evento.

description

string

É a descrição do evento. Pode conter HTML. Opcional.

location

string

Localização geográfica do evento como texto livre. Opcional.

creator

object (Principal)

O criador do evento. Somente leitura.

organizer

object (Principal)

O organizador do evento. Se o organizador também for um participante, isso será indicado com uma entrada separada em "participantes" com o campo "organizador" definido como "True". Somente leitura.

start

object (DateOrDateTime)

O horário de início do evento (inclusivo). Para um evento recorrente, esse é o horário de início da primeira instância.

end

object (DateOrDateTime)

O horário de término (exclusivo) do evento. Para um evento recorrente, esse é o horário de término da primeira instância.

recurrence[]

string

Lista de linhas RRULE, EXRULE, RDATE e EXDATE para um evento recorrente, conforme especificado na RFC5545. As linhas DTSTART e DTEND não são permitidas nesse campo. Os horários de início e término do evento são especificados nos campos "Início" e "Término". Esse campo é omitido para eventos únicos ou instâncias de eventos recorrentes.

recurringEventId

string

Para uma instância de um evento recorrente, é o ID do evento recorrente a que essa instância pertence. Imutável.

originalStartTime

object (DateOrDateTime)

Para uma instância de um evento recorrente, é o horário em que esse evento começaria de acordo com os dados de recorrência no evento recorrente identificado por recurringEventId. Ele identifica de forma exclusiva a instância na série de eventos recorrentes, mesmo que ela tenha sido movida para outro horário. Imutável.

transparency

string

Se o evento bloqueia um horário na agenda. Opcional. Os valores possíveis são:

  • opaque: valor padrão. O evento bloqueia o tempo na agenda. Isso equivale a definir "Mostrar como" como "Ocupado" na interface do Agenda.
  • transparent: o evento não bloqueia o tempo na agenda. Isso equivale a definir "Mostrar como" como "Disponível" na interface do Google Agenda.
visibility

string

Visibilidade do evento. Opcional. Os valores possíveis são:

  • default: usa a visibilidade padrão para eventos na agenda. Esse é o valor padrão.
  • public: o evento é público e os detalhes ficam visíveis para todos os leitores da agenda.
  • private: o evento é particular, e apenas os participantes podem ver os detalhes.
  • confidential: o evento é particular. Esse valor é fornecido por motivos de compatibilidade.
attendees[]

object (Attendee)

Os participantes do evento.

eventType

string

Tipo específico do evento. Isso não pode ser modificado depois da criação do evento. Os valores possíveis são:

  • birthday: um evento especial de dia inteiro que acontece anualmente.
  • default: um evento regular ou não especificado.
  • focusTime: um evento "Horário de concentração".
  • fromGmail: um evento do Gmail. Não é possível criar esse tipo de evento.
  • outOfOffice: um evento fora do escritório.
  • workingLocation: um evento de local de trabalho.
conferenceUrl

string

O link do Google Meet para o evento.

colorId

string

ID da cor do evento (string 1-11):

  • 1: lavanda
  • 2: Sage
  • 3: uva
  • 4: Flamingo
  • 5: Banana
  • 6: Tangerina
  • 7: Pavão
  • 8: grafite
  • 9: mirtilo
  • 10: manjericão
  • 11: Tomate.

No Google Agenda, as cores dos eventos funcionam como categorias, que podem ser definidas por evento ou por série. Os usuários podem atribuir rótulos personalizados a cores na interface da Web (por exemplo, 1:1s, Break), mas a API só expõe IDs numéricos, não esses rótulos. Afeta apenas sua visualização da agenda. Cada participante controla a cor do próprio evento.

overrideReminders[]

object (Reminder)

Lembretes definidos para este evento, substituindo os lembretes padrão da agenda. Se não for definido, os lembretes padrão do calendário serão usados.

Principal

Representação JSON
{
  "email": string,
  "displayName": string,
  "self": boolean
}
Campos
email

string

Endereço de e-mail do principal (agenda).

displayName

string

O nome do principal, se disponível.

self

boolean

Se esse principal corresponde à agenda em que essa cópia do evento aparece. Somente leitura. O valor padrão é falso.

DateOrDateTime

Representação JSON
{
  "date": string,
  "dateTime": string,
  "timeZone": string
}
Campos
date

string

Uma data formatada no padrão ISO 8601 à meia-noite UTC, como 2019-11-20T00:00:00Z. Se esse campo for definido, date_time não poderá ser definido.

dateTime

string

Um carimbo de data/hora formatado em ISO 8601, como 2019-11-20T08:19:06-07:00 ou 2019-11-20T08:19:06Z. Se esse campo for definido, date não poderá ser definido.

timeZone

string

Nome do fuso horário TZDB, se disponível.

Convidado

Representação JSON
{
  "id": string,
  "email": string,
  "displayName": string,
  "organizer": boolean,
  "self": boolean,
  "resource": boolean,
  "optionalAttendee": boolean,
  "responseStatus": string,
  "comment": string,
  "additionalGuests": integer
}
Campos
id

string

O ID do perfil do participante, se disponível.

email

string

O endereço de e-mail do participante, se disponível. Esse campo precisa estar presente ao adicionar um participante. Ele precisa ser um endereço de e-mail válido, de acordo com a RFC5322. Obrigatório ao adicionar um participante.

displayName

string

O nome do participante, se disponível. Opcional.

organizer

boolean

Se o participante é o organizador do evento. Somente leitura. O valor padrão é falso.

self

boolean

Se esta entrada representa a agenda em que esta cópia do evento aparece. Somente leitura. O valor padrão é falso.

resource

boolean

Se o participante é um recurso. Só pode ser definido quando o participante é adicionado ao evento pela primeira vez. Modificações subsequentes são ignoradas. Opcional. O valor padrão é falso.

optionalAttendee

boolean

Indica se o participante é opcional. Opcional. O valor padrão é falso.

responseStatus

string

O status da resposta do participante. Os valores possíveis são:

  • needsAction: o participante não respondeu ao convite (recomendado para novos eventos).
  • declined: o participante recusou o convite.
  • tentative: o convidado aceitou o convite provisoriamente.
  • accepted: o convidado aceitou o convite.
comment

string

O comentário de resposta do participante. Opcional.

additionalGuests

integer

Número de hóspedes extras. Opcional. O padrão é 0.

Anotações de ferramentas

Dica destrutiva: ❌ | Dica idempotente: ✅ | Dica somente leitura: ✅ | Dica de mundo aberto: ❌