Инструмент: list_events
Выводит список событий календаря, удовлетворяющих заданным условиям.
Основные характеристики:
- Любой идентификатор календаря, который может соответствовать основному календарю пользователя или другим.
- Фильтрация по временному диапазону.
- Извлекает ВСЕ события, соответствующие временным ограничениям.
Если доступна функция поиска событий, используйте инструмент search_events для поиска в основном календаре пользователя, если:
- Вы запрашиваете события, соответствующие определенной теме, категории или цели (например, «обеденные встречи», «синхронизация проектов»).
- Вам необходимо найти (K наиболее релевантных) событий, а не все события, удовлетворяющие ограничениям.
- Вам необходимы возможности поиска по ключевым словам или семантического поиска.
Используйте этот инструмент для таких запросов, как:
- Что у меня на завтра в календаре?
- Что запланировано у меня на 14 июля 2025 года?
- Какие у меня встречи на следующей неделе?
- Есть ли у меня какие-либо дела сегодня днем?
Какие встречи у Джона завтра?
Пример:
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.
В следующем примере показано, как использовать curl для вызова инструмента MCP list_events .
| Запрос 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 }' |
Схема ввода
ListEventsRequest
| JSON-представление |
|---|
{ "eventTypeFilter": [ string ], "calendarId": string "pageSize": integer "pageToken": string "startTime": string "endTime": string "timeZone": string "orderBy": string "fullText": string } |
| Поля | |
|---|---|
eventTypeFilter[] | Необязательный параметр. Типы событий для возврата. Возможные значения:
Если поле пустое, возвращаются только следующие типы событий: |
Объединенное поле | |
calendarId | Необязательный параметр. Идентификатор календаря, из которого будут отображаться события. По умолчанию используется основной календарь пользователя. |
Объединенное поле | |
pageSize | Необязательно. Максимальное количество событий, возвращаемых на одной странице результатов. Количество событий на результирующей странице может быть меньше этого значения или вовсе отсутствовать, даже если есть больше событий, соответствующих запросу. Неполные страницы могут быть обнаружены по непустому полю |
Поле объединения | |
pageToken | Необязательный параметр. Токен, указывающий, какую страницу результатов следует вернуть. |
Объединенное поле | |
startTime | Необязательный параметр. Нижняя граница (исключая) времени окончания события. Возвращаются только события, заканчивающиеся строго после этого времени (т.е., начала временного окна для поиска). По умолчанию используется текущее время, если не указаны ни |
Объединенное поле | |
endTime | Необязательный параметр. Верхняя граница (исключая) времени начала события. Возвращаются только события, начинающиеся строго до этого времени (т.е. до конца временного окна поиска). Если указано, должно быть больше или равно |
Поле объединения | |
timeZone | Необязательный параметр. Часовой пояс, используемый в ответе и для разрешения дат без указания часового пояса в запросе (отформатирован как имя из базы данных часовых поясов IANA, например, |
Объединение полей | |
orderBy | Необязательный параметр. Порядок возврата событий. Возможные значения:
|
Поле объединения | |
fullText | Необязательно. Свободный поисковый запрос для поиска по названию, описанию, местоположению и участникам. |
Схема вывода
ListEventsResponse
| JSON-представление |
|---|
{ "summary": string, "description": string, "updated": string, "timeZone": string, "accessRole": string, "defaultReminders": [ { object ( |
| Поля | |
|---|---|
summary | Название календаря. |
description | Описание календаря. |
updated | Время последнего изменения календаря (в формате ISO 8601). |
timeZone | Часовой пояс календаря. |
accessRole | Роль доступа пользователя к этому календарю. Только для чтения. Возможные значения:
|
defaultReminders[] | Напоминания по умолчанию в календаре для авторизованного пользователя. Эти напоминания применяются ко всем событиям в этом календаре, которые явно не переопределяют их (т.е. не заполняют поле override_reminders). |
events[] | Список событий в календаре. |
Поле объединения | |
nextPageToken | Токен, используемый для доступа к следующей странице результатов. Опускается, если других результатов нет. |
Напоминание
| JSON-представление |
|---|
{ "method": string "minutes": integer } |
| Поля | |
|---|---|
Объединение полей | |
method | Обязательный параметр. Способ доставки напоминания пользователю. Возможные значения:
|
Union field | |
minutes | Обязательно. Количество минут, за которое должно быть отправлено напоминание. |
Событие
| JSON-представление |
|---|
{ "id": string, "status": string, "htmlLink": string, "created": string, "updated": string, "summary": string, "description": string, "location": string, "creator": { object ( |
| Поля | |
|---|---|
id | Непрозрачный идентификатор события. При создании новых разовых или повторяющихся событий можно указать их идентификаторы. Указанные идентификаторы должны соответствовать следующим правилам:
Ввиду глобальной распределенности системы мы не можем гарантировать обнаружение коллизий идентификаторов во время создания события. Для минимизации риска коллизий мы рекомендуем использовать проверенный алгоритм UUID, например, описанный в RFC4122. Если вы не укажете идентификатор, он будет сгенерирован сервером автоматически. Обратите внимание, что icalUID и id не идентичны, и при создании события следует указывать только один из них. Одно из различий в их семантике заключается в том, что в повторяющихся событиях все экземпляры одного события имеют разные id, но при этом все они используют один и тот же icalUID. |
status | Статус события. Необязательный параметр. Возможные значения:
Статус «отменено» обозначает два разных состояния в зависимости от типа события:
В календаре организатора отмененные события продолжают отображать подробную информацию о них (краткое описание, место проведения и т. д.), что позволяет их восстановить (восстановить в удаленном виде). Аналогично, события, на которые пользователь был приглашен и которые он удалил вручную, также продолжают предоставлять подробную информацию. Однако запросы на инкрементальную синхронизацию с параметром showDeleted, установленным в значение false, не будут возвращать эти данные. Если организатор мероприятия меняется (например, путем перемещения), а первоначальный организатор отсутствует в списке участников, то мероприятие будет отменено, и гарантированно будет заполнено только поле id. |
htmlLink | Абсолютная ссылка на это событие в веб-интерфейсе Google Календаря. Только для чтения. |
created | Время создания события (в формате метки времени ISO 8601). Только для чтения. |
updated | Время последнего изменения основных данных события (в формате метки времени ISO 8601). Обновление напоминаний о событиях не приведет к изменению этого параметра. Только для чтения. |
summary | Название мероприятия. |
description | Описание мероприятия. Может содержать HTML-код. Необязательно. |
location | Географическое местоположение мероприятия в виде произвольного текста. Необязательно. |
creator | Создатель мероприятия. Только для чтения. |
organizer | Организатор мероприятия. Если организатор также является участником, это указывается отдельной записью в списке участников, где для поля «Организатор» установлено значение «True». Только для чтения. |
start | Время начала события (включительно). Для повторяющегося события это время начала первого события. |
end | Время окончания события (исключая указанное время). Для повторяющегося события это время окончания первого его экземпляра. |
recurrence[] | Список строк RRULE, EXRULE, RDATE и EXDATE для повторяющегося события, как указано в RFC5545. Обратите внимание, что строки DTSTART и DTEND не допускаются в этом поле; время начала и окончания события указывается в полях start и end. Это поле опускается для единичных событий или случаев повторяющихся событий. |
recurringEventId | Для экземпляра повторяющегося события это идентификатор повторяющегося события, к которому принадлежит данный экземпляр. Неизменяемый. |
originalStartTime | Для экземпляра повторяющегося события это время, в которое это событие должно было бы начаться в соответствии с данными о повторяемости в повторяющемся событии, идентифицированном по recurringEventId. Оно однозначно идентифицирует экземпляр в серии повторяющихся событий, даже если экземпляр был перемещен на другое время. Неизменяемый. |
transparency | Определяет, блокирует ли событие время в календаре. Необязательный параметр. Возможные значения:
|
visibility | Видимость события. Необязательный параметр. Возможные значения:
|
attendees[] | Участники мероприятия. |
eventType | Конкретный тип события. Изменить его после создания события невозможно. Возможные значения:
|
conferenceUrl | Ссылка на мероприятие в Google Meet. |
colorId | Идентификатор цвета события (
В Google Календаре цвета событий функционируют как категории — их можно устанавливать для каждого события или серии событий. Пользователи могут назначать пользовательские метки цветам в веб-интерфейсе (например, |
overrideReminders[] | Напоминания, заданные для этого события, переопределяют напоминания по умолчанию в календаре. Если не задано, используются напоминания по умолчанию в календаре. |
Главный
| JSON-представление |
|---|
{ "email": string, "displayName": string, "self": boolean } |
| Поля | |
|---|---|
email | Адрес электронной почты директора (календарь). |
displayName | Имя директора, если имеется. |
self | Соответствует ли этот основной параметр календарю, в котором отображается данная копия события. Только для чтения. Значение по умолчанию — False. |
Дата или Дата/Время
| JSON-представление |
|---|
{ "date": string, "dateTime": string, "timeZone": string } |
| Поля | |
|---|---|
date | Дата в формате ISO 8601 в полночь по UTC, например, |
dateTime | Временная метка в формате ISO 8601, например, |
timeZone | Название часового пояса в базе данных TZDB (если доступно). |
Участник
| JSON-представление |
|---|
{ "id": string, "email": string, "displayName": string, "organizer": boolean, "self": boolean, "resource": boolean, "optionalAttendee": boolean, "responseStatus": string, "comment": string, "additionalGuests": integer } |
| Поля | |
|---|---|
id | Идентификатор профиля участника (если имеется). |
email | Адрес электронной почты участника, если он имеется. Это поле должно присутствовать при добавлении участника. Адрес электронной почты должен соответствовать требованиям RFC5322. Обязательно при добавлении участника. |
displayName | Имя участника (если имеется). (Необязательно). |
organizer | Указывает, является ли участник организатором мероприятия. Только для чтения. Значение по умолчанию — False. |
self | Указывает, соответствует ли данная запись календарю, на котором отображается этот экземпляр события. Только для чтения. Значение по умолчанию — False. |
resource | Указывает, является ли участник ресурсом. Этот параметр можно установить только при первом добавлении участника к мероприятию. Последующие изменения игнорируются. Необязательный параметр. Значение по умолчанию — False. |
optionalAttendee | Является ли это необязательным участником. Необязательно. Значение по умолчанию — False. |
responseStatus | Статус ответа участника. Возможные значения:
|
comment | Комментарий участника. Необязательно. |
additionalGuests | Количество дополнительных гостей. Необязательно. По умолчанию — 0. |
Аннотации инструментов
Подсказка о разрушительном эффекте: ❌ | Подсказка об идемпотентности: ✅ | Подсказка только для чтения: ✅ | Подсказка об открытом мире: ❌