Tool: list_events
Listet Kalendertermine in einem bestimmten Kalender auf, die die angegebenen Bedingungen erfüllen.
Wichtigste Funktionen:
- Eine beliebige Kalender-ID, z. B. der primäre Kalender des Nutzers oder andere Kalender.
- Filtern nach Zeitraum
- Ruft ALLE Ereignisse ab, die den Zeitbeschränkungen entsprechen.
Verwenden Sie stattdessen das Tool „search_events“ für Suchanfragen im primären Kalender des Nutzers, wenn:
- Sie fragen nach Ereignissen ab, die einem bestimmten Thema, einer bestimmten Kategorie oder einer bestimmten Absicht entsprechen (z.B. „Mittagsbesprechungen“, „Projektabstimmungen“).
- Sie müssen die (K) relevantesten Ereignisse und nicht alle Ereignisse finden, die die Einschränkungen erfüllen.
- Sie benötigen Funktionen für die Keyword- oder semantische Suche.
Verwenden Sie dieses Tool für Abfragen wie:
- Was steht morgen in meinem Kalender?
- Welche Termine stehen am 14. Juli 2025 an?
- Welche Besprechungen habe ich nächste Woche?
- Habe ich heute Nachmittag Terminkonflikte?
Welche Besprechungen hat Max morgen?
Beispiel:
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.
Im folgenden Beispiel wird gezeigt, wie Sie mit curl das MCP-Tool list_events aufrufen.
| Curl-Anfrage |
|---|
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 }' |
Eingabeschema
ListEventsRequest
| JSON-Darstellung |
|---|
{ "eventTypeFilter": [ string ], "calendarId": string "pageSize": integer "pageToken": string "startTime": string "endTime": string "timeZone": string "orderBy": string "fullText": string } |
| Felder | |
|---|---|
eventTypeFilter[] |
Optional. Die Ereignistypen, die zurückgegeben werden sollen. Folgende Werte sind möglich:
Wenn leer, werden nur die folgenden Ereignistypen zurückgegeben: |
Union-Feld Für |
|
calendarId |
Optional. Die Kalender-ID, aus der Termine aufgelistet werden sollen. Standardmäßig wird der primäre Kalender des Nutzers verwendet. |
Union-Feld Für |
|
pageSize |
Optional. Maximale Anzahl von Ereignissen, die auf einer Ergebnisseite zurückgegeben werden. Die Anzahl der Ereignisse auf der resultierenden Seite kann geringer als dieser Wert sein oder sogar null betragen, auch wenn es mehr Ereignisse gibt, die der Anfrage entsprechen. Unvollständige Seiten können durch ein nicht leeres Feld |
Union-Feld Für |
|
pageToken |
Optional. Token, das angibt, welche Ergebnisseite zurückgegeben werden soll. |
Union-Feld Für |
|
startTime |
Optional. Untergrenze (exklusiv) für die Endzeit eines Ereignisses. Es werden nur Termine zurückgegeben, die nach diesem Zeitpunkt enden (d.h. der Beginn des Zeitfensters für die Suche). Wenn weder |
Union-Feld Für |
|
endTime |
Optional. Exklusive Obergrenze für die Startzeit eines Ereignisses. Es werden nur Ereignisse zurückgegeben, die vor diesem Zeitpunkt beginnen (d.h. das Ende des zu durchsuchenden Zeitfensters). Falls angegeben, muss der Wert größer oder gleich |
Union-Feld Für |
|
timeZone |
Optional. Die in der Antwort verwendete Zeitzone und die Zeitzone, die zum Auflösen von datumsbezogenen Angaben ohne Zeitzone in der Anfrage verwendet wird (formatiert als Name der IANA-Zeitzonendatenbank, z.B. |
Union-Feld Für |
|
orderBy |
Optional. Die Reihenfolge, in der Ereignisse zurückgegeben werden sollen. Folgende Werte sind möglich:
|
Union-Feld Für |
|
fullText |
Optional. Freiform-Suchanfrage, mit der Sie Titel, Beschreibung, Ort und Teilnehmer durchsuchen können. |
Ausgabeschema
ListEventsResponse
| JSON-Darstellung |
|---|
{ "summary": string, "description": string, "updated": string, "timeZone": string, "accessRole": string, "defaultReminders": [ { object ( |
| Felder | |
|---|---|
summary |
Titel des Kalenders. |
description |
Beschreibung des Kalenders. |
updated |
Zeitpunkt der letzten Änderung des Kalenders (als ISO 8601-Zeitstempel). |
timeZone |
Die Zeitzone des Kalenders. |
accessRole |
Die Zugriffsrolle des Nutzers für diesen Kalender. Schreibgeschützt. Folgende Werte sind möglich:
|
defaultReminders[] |
Die Standarderinnerungen im Kalender für den authentifizierten Nutzer. Diese Erinnerungen gelten für alle Termine in diesem Kalender, für die sie nicht explizit überschrieben werden (d.h. für die „override_reminders“ nicht ausgefüllt ist). |
events[] |
Liste der Termine im Kalender. |
Union-Feld Für |
|
nextPageToken |
Token für den Zugriff auf die nächste Seite dieses Ergebnisses. Wird weggelassen, wenn keine weiteren Ergebnisse verfügbar sind. |
Erinnerung
| JSON-Darstellung |
|---|
{ "method": string "minutes": integer } |
| Felder | |
|---|---|
Union-Feld Für |
|
method |
Erforderlich. Wie die Erinnerung an den Nutzer gesendet wird. Folgende Werte sind möglich:
|
Union-Feld Für |
|
minutes |
Erforderlich. Anzahl der Minuten vor dem Termin, zu dem die Erinnerung gesendet werden soll. |
Ereignis
| JSON-Darstellung |
|---|
{ "id": string, "status": string, "htmlLink": string, "created": string, "updated": string, "summary": string, "description": string, "location": string, "creator": { object ( |
| Felder | |
|---|---|
id |
Opake Kennung des Ereignisses. Wenn Sie neue einmalige oder wiederkehrende Ereignisse erstellen, können Sie deren IDs angeben. Die bereitgestellten IDs müssen den folgenden Regeln entsprechen:
Da das System weltweit verteilt ist, können wir nicht garantieren, dass ID-Kollisionen bei der Ereigniserstellung erkannt werden. Um das Risiko von Kollisionen zu minimieren, empfehlen wir die Verwendung eines etablierten UUID-Algorithmus, z. B. eines in RFC4122 beschriebenen. Wenn Sie keine ID angeben, wird sie automatisch vom Server generiert. Beachten Sie, dass icalUID und ID nicht identisch sind und nur eine von beiden beim Erstellen des Termins angegeben werden sollte. Ein semantischer Unterschied besteht darin, dass alle Instanzen eines wiederkehrenden Termins unterschiedliche IDs, aber dieselben icalUIDs haben. |
status |
Status des Ereignisses. Optional. Folgende Werte sind möglich:
Der Status „Abgebrochen“ kann je nach Ereignistyp zwei verschiedene Status darstellen:
Im Kalender des Organisators werden für abgesagte Termine weiterhin Termindetails (Zusammenfassung, Ort usw.) angezeigt, damit sie wiederhergestellt werden können. Ebenso werden weiterhin Details zu den Ereignissen bereitgestellt, zu denen der Nutzer eingeladen wurde und die er manuell entfernt hat. Bei inkrementellen Synchronisierungsanfragen, bei denen „showDeleted“ auf „false“ gesetzt ist, werden diese Details jedoch nicht zurückgegeben. Wenn sich der Organisator eines Termins ändert (z. B. durch die Verschiebeoperation) und der ursprüngliche Organisator nicht in der Teilnehmerliste enthalten ist, wird ein abgesagter Termin zurückgelassen, bei dem nur das Feld „id“ garantiert ausgefüllt ist. |
htmlLink |
Ein absoluter Link zu diesem Termin in der Google Kalender-Web-UI. Schreibgeschützt. |
created |
Erstellungszeit des Ereignisses (als ISO 8601-formatierter Zeitstempel). Schreibgeschützt. |
updated |
Zeitpunkt der letzten Änderung der Hauptereignisdaten (als ISO 8601-formatierter Zeitstempel). Das Aktualisieren von Terminerinnerungen führt nicht zu einer Änderung. Schreibgeschützt. |
summary |
Titel der Veranstaltung. |
description |
Beschreibung der Veranstaltung. Kann HTML enthalten. Optional. |
location |
Der geografische Standort des Ereignisses als Freitext. Optional. |
creator |
Der Ersteller des Ereignisses. Schreibgeschützt. |
organizer |
Der Organisator des Termins. Wenn der Organisator auch ein Teilnehmer ist, wird dies durch einen separaten Eintrag unter „attendees“ angezeigt, bei dem das Feld „organizer“ auf „True“ gesetzt ist. Schreibgeschützt. |
start |
Die (inklusive) Startzeit des Ereignisses. Bei einem wiederkehrenden Termin ist dies die Startzeit der ersten Instanz. |
end |
Die (ausgeschlossene) Endzeit des Ereignisses. Bei einem wiederkehrenden Termin ist dies die Endzeit des ersten Termins. |
recurrence[] |
Liste der RRULE-, EXRULE-, RDATE- und EXDATE-Zeilen für ein wiederkehrendes Ereignis, wie in RFC5545 angegeben. Die Zeilen DTSTART und DTEND sind in diesem Feld nicht zulässig. Start- und Endzeiten von Terminen werden in den Feldern „Start“ und „Ende“ angegeben. Dieses Feld wird für einzelne Ereignisse oder Instanzen wiederkehrender Ereignisse ausgelassen. |
recurringEventId |
Bei einer Instanz eines wiederkehrenden Termins ist dies die ID des wiederkehrenden Termins, zu dem diese Instanz gehört. Nicht veränderbar. |
originalStartTime |
Für eine Instanz eines wiederkehrenden Termins ist dies die Uhrzeit, zu der dieser Termin gemäß den Wiederholungsdaten im wiederkehrenden Termin mit der ID „recurringEventId“ beginnen würde. Sie identifiziert die Instanz innerhalb der Reihe wiederkehrender Termine eindeutig, auch wenn die Instanz auf eine andere Zeit verschoben wurde. Nicht veränderbar. |
transparency |
Gibt an, ob der Termin Zeit im Kalender blockiert. Optional. Folgende Werte sind möglich:
|
visibility |
Sichtbarkeit des Ereignisses. Optional. Folgende Werte sind möglich:
|
attendees[] |
Die Teilnehmer der Veranstaltung. |
eventType |
Die genaue Art des Ereignisses. Dies kann nach dem Erstellen des Ereignisses nicht mehr geändert werden. Folgende Werte sind möglich:
|
conferenceUrl |
Der Google Meet-Link für den Termin. |
colorId |
Ereignisfarb-ID (String
In Google Kalender dienen Terminfarben als Kategorien, die pro Termin oder pro Terminserie festgelegt werden können. Nutzer können Farben in der Web-UI benutzerdefinierte Labels zuweisen (z. B. |
overrideReminders[] |
Für dieses Ereignis definierte Erinnerungen, die die Standarderinnerungen für den Kalender überschreiben. Wenn nicht festgelegt, werden die Standarderinnerungen im Kalender verwendet. |
Hauptkonto
| JSON-Darstellung |
|---|
{ "email": string, "displayName": string, "self": boolean } |
| Felder | |
|---|---|
email |
E-Mail-Adresse des Hauptkontos (Kalender). |
displayName |
Der Name des Auftraggebers, falls verfügbar. |
self |
Gibt an, ob dieses Prinzipal dem Kalender entspricht, in dem diese Kopie des Termins angezeigt wird. Schreibgeschützt. Die Standardeinstellung ist "False". |
DateOrDateTime
| JSON-Darstellung |
|---|
{ "date": string, "dateTime": string, "timeZone": string } |
| Felder | |
|---|---|
date |
Ein im ISO 8601-Format angegebenes Datum um Mitternacht UTC, z. B. |
dateTime |
Ein Zeitstempel im ISO 8601-Format, z. B. |
timeZone |
TZDB-Zeitzonenname, falls verfügbar. |
Gast
| JSON-Darstellung |
|---|
{ "id": string, "email": string, "displayName": string, "organizer": boolean, "self": boolean, "resource": boolean, "optionalAttendee": boolean, "responseStatus": string, "comment": string, "additionalGuests": integer } |
| Felder | |
|---|---|
id |
Die Profil-ID des Teilnehmers, falls verfügbar. |
email |
Die E‑Mail-Adresse des Teilnehmers, sofern verfügbar. Dieses Feld muss beim Hinzufügen eines Teilnehmers angegeben werden. Es muss eine gültige E-Mail-Adresse gemäß RFC5322 sein. Erforderlich, wenn ein Teilnehmer hinzugefügt wird. |
displayName |
Der Name des Teilnehmers, falls verfügbar. Optional. |
organizer |
Gibt an, ob der Teilnehmer der Organisator des Termins ist. Schreibgeschützt. Die Standardeinstellung ist "False". |
self |
Gibt an, ob dieser Eintrag den Kalender darstellt, in dem diese Kopie des Termins angezeigt wird. Schreibgeschützt. Die Standardeinstellung ist "False". |
resource |
Gibt an, ob der Teilnehmer eine Ressource ist. Kann nur festgelegt werden, wenn der Teilnehmer dem Termin zum ersten Mal hinzugefügt wird. Nachfolgende Änderungen werden ignoriert. Optional. Die Standardeinstellung ist "False". |
optionalAttendee |
Gibt an, ob es sich um einen optionalen Teilnehmer handelt. Optional. Die Standardeinstellung ist "False". |
responseStatus |
Der Antwortstatus des Teilnehmers. Folgende Werte sind möglich:
|
comment |
Der Antwortkommentar des Teilnehmers. Optional. |
additionalGuests |
Anzahl der zusätzlichen Gäste. Optional. Der Standardwert ist 0. |
Tool-Annotationen
Destruktiver Hinweis: ❌ | Idempotenter Hinweis: ✅ | Nur-Lese-Hinweis: ✅ | Open-World-Hinweis: ❌