Auf dieser Seite wird die Eigenschaft eventType
und die Spezifikationen der in der Google Calendar API verfügbaren Ereignistypen erläutert.
In Google Kalender können Nutzer allgemeine Termine sowie Termine erstellen, die für bestimmte Anwendungsfälle konzipiert sind und benutzerdefinierte Eigenschaften haben.
Der Ereignistyp kann an den folgenden Stellen in der API ermittelt werden:
- Alle Ereignisse werden mit einem
eventType
zurückgegeben. eventType
muss beim Erstellen oder Aktualisieren einer Ereignisressource festgelegt werden. Wenn kein Wert angegeben ist, wird der Typ'default'
verwendet.eventTypes
kann in einemEvents:list
-Aufruf angegeben werden, um Ereignisse bestimmter Typen aufzulisten. Wenn kein Typ angegeben ist, werden alle Ereignistypen zurückgegeben.eventTypes
kann in einemEvents:watch
-Aufruf angegeben werden, um Updates zu Ereignissen bestimmter Typen zu abonnieren. Wenn kein Typ angegeben ist, werden durch die Anfrage alle Ereignistypen abonniert.
Standardereignis
Termine mit dem Ereignistyp default
werden erstellt und als eine der wichtigsten Ressourcen der Google Calendar API verwendet. Sie unterstützen eine Vielzahl von Eigenschaften, mit denen das Ereignis weiter angepasst werden kann.
Weitere Informationen finden Sie unter Termine erstellen.
Geburtstag
Geburtstage sind besondere ganztägige Termine, die jährlich wiederkehren.
Nutzer können in Google Kalender manuell Geburtstagstermine erstellen. Außerdem werden die Geburtstage mit Google Kalender synchronisiert, wenn Nutzer eine Person hinzufügen und ihren Geburtstag und andere wichtige Ereignisse in Google Kontakte aufnehmen. Der Geburtstag von Nutzern wird auch aus ihrem Google-Kontoprofil mit Google Kalender synchronisiert.
Die Google Calendar API unterstützt die Methoden get
, instances
und list
zum Lesen von Geburtstagsereignissen. eventTypes
kann auf 'birthday'
gesetzt werden, um nur Geburtstagsereignisse aufzulisten. Wenn kein Typ angegeben ist, werden Geburtstage zusammen mit allen anderen Ereignistypen aufgeführt.
Sehen Sie sich in den zurückgegebenen Event
-Objekten das Feld birthdayProperties
an, um weitere Informationen zu diesem besonderen Ereignis zu erhalten. birthdayProperties
hat die folgenden Felder:
type
: Typ dieses besonderen Ereignisses, z. B. Geburtstag, Jubiläum oder ein anderes wichtiges Datum.customTypeName
: Benutzerdefiniertes Label für dieses besondere Ereignis. Wird ausgefüllt, wenntype
auf'custom'
gesetzt ist.contact
: Ressourcenname des Kontakts, mit dem dieses besondere Ereignis verknüpft ist, falls vorhanden. Sie hat das Format'people/c12345'
und kann verwendet werden, um Kontaktdetails aus der People API abzurufen.
Mit der API können Geburtstagsereignisse mit der Methode insert
erstellt werden. Dabei gelten die folgenden Spezifikationen:
eventType
ist auf'birthday'
gesetzt.- In den Feldern
start
undend
muss ein ganztägiges Ereignis definiert werden, das genau einen Tag umfasst. - Der Feldwert
visibility
muss'private'
sein. - Der Feldwert
transparency
muss'transparent'
sein. - Die Serie muss jährlich wiederkehren. Das bedeutet, dass das Feld
recurrence
den Wert'RRULE:FREQ=YEARLY'
haben muss. Geburtstagstermine, die auf den 29. Februar fallen, müssen die folgende Wiederholungsregel haben:'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'
. - Kann
colorId
,summary
undreminders
enthalten. - Kann
birthdayProperties
haben. Falls angegeben, musstype
'birthday'
sein und sowohlcustomTypeName
als auchcontact
müssen leer sein. - Es dürfen keine anderen Ereigniseigenschaften vorhanden sein.
Mit der API können die colorId
, summary
und reminders
von Geburtstagsereignissen mit den Methoden update
und patch
aktualisiert werden.
Die Felder start
und end
können ebenfalls aktualisiert werden, um das Veranstaltungsdatum zu ändern. In diesem Fall müssen die neuen Werte ein ganztägiges Ereignis definieren, das genau einen Tag umfasst. Die Zeitangaben eines Geburtstags können nicht aktualisiert werden, wenn der Termin mit einem contact
verknüpft ist oder sein type
'self'
ist.
Mit der Google Calendar API können keine Geburtstagstermine mit benutzerdefinierten birthdayProperties
erstellt oder diese Eigenschaften aktualisiert werden. Wichtige Termine können mit der People API bearbeitet werden. Die Änderungen werden mit Google Kalender synchronisiert. Nutzer können ihr eigenes Geburtsdatum in ihrem Google-Konto-Profil bearbeiten. Es wird dann mit Google Kalender synchronisiert.
Anfragen, mit denen versucht wird, ein Geburtsdatum auf nicht unterstützte Weise zu erstellen oder zu aktualisieren, schlagen fehl. Sehen Sie sich in diesem Fall die Fehlermeldung an, um das Problem zu ermitteln.
Die API unterstützt den Vorgang import
für Geburtstagsereignisse. Das Ereignis wird jedoch als Standardereignis importiert. Mit anderen Worten: Die eventType
ist 'default'
.
Die API unterstützt die Methode watch
, mit der Sie Änderungen an Geburtstagsereignissen in Google Kalender abonnieren können.
eventTypes
kann auf 'birthday'
gesetzt werden, um Updates zu Geburtstagsereignissen zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen, einschließlich Geburtstage, abonniert.
Geburtstagstermine können mit der Methode delete
der Google Calendar API gelöscht werden. Wenn Sie ein Geburtstagsereignis aus Google Kalender löschen, hat das keine Auswirkungen auf Daten in Google Kontakte oder im Google-Kontoprofil.
Das Ändern des Organisators eines Geburtstags mithilfe der Methoden move
oder update
wird nicht unterstützt.
Termine aus Gmail
Termine, die automatisch aus Gmail generiert werden, haben den Ereignistyp 'fromGmail'
.
Mit der Google Calendar API kann dieser Ereignistyp nicht mit der Methode insert
erstellt werden.
Mit der API können die erweiterten Attribute colorId
, reminders
, visibility
, transparency
, status
, attendees
, private
und shared
mit den Methoden update
und patch
aktualisiert werden.
Die API unterstützt die Methoden get
und list
zum Lesen von Ereignissen aus Gmail. eventTypes
kann auf 'fromGmail'
gesetzt werden, um nur Termine aufzulisten, die aus Gmail generiert wurden. Wenn kein Typ angegeben ist, werden Termine aus Gmail zusammen mit allen anderen Ereignistypen aufgeführt.
Die API unterstützt die Methode watch
, um Änderungen an Terminen aus Gmail in Google Kalender zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen, einschließlich 'fromGmail'
, abonniert.
Termine aus Gmail können mit der Methode delete
der Google Calendar API gelöscht werden.
Das Ändern des Organisators eines Termins über Gmail mit den Methoden move
oder update
wird nicht unterstützt.
Fokuszeiten, Abwesenheiten und Arbeitsorte
Mit der Google Calendar API lassen sich Termine erstellen und verwalten, die den Status von Google Kalender-Nutzern anzeigen.
Diese Funktionen sind nur in primären Kalendern und für einige Google Kalender-Nutzer verfügbar. Weitere Informationen finden Sie unter Fokuszeit, Abwesenheit und Arbeitsort verwalten.
Eventtypen in Google Apps Script
Google Apps Script ist eine JavaScript-basierte Cloud-Scriptsprache, mit der Sie Geschäftsanwendungen erstellen können, die in Google Workspace eingebunden werden. Scripts werden in einem browserbasierten Code-Editor entwickelt und auf den Servern von Google gespeichert und ausgeführt. Google Apps Script-Schnellstart
In der folgenden Anleitung wird beschrieben, wie Sie Ereignisse mit der Google Calendar API als erweiterten Dienst in Google Apps Script lesen und verwalten. Eine vollständige Liste der Google Calendar API-Ressourcen und -Methoden finden Sie in der Referenzdokumentation.
Skript erstellen und einrichten
- Rufen Sie script.google.com/create auf, um ein Skript zu erstellen.
- Klicken Sie im linken Bereich neben Dienste auf „Dienst hinzufügen“ .
- Wählen Sie Google Calendar API aus und klicken Sie auf Hinzufügen.
- Nach der Aktivierung wird die API im linken Bereich angezeigt. Verfügbare Methoden und Klassen in der API können mit dem Keyword Calendar im Editor aufgerufen werden.
(Optional) Google Cloud-Projekt aktualisieren
Jedes Google Apps Script-Projekt ist mit einem Google Cloud-Projekt verknüpft. Ihr Skript kann das Standardprojekt verwenden, das von Google Apps Script automatisch erstellt wird. Wenn Sie ein benutzerdefiniertes Google Cloud-Projekt verwenden möchten, lesen Sie den Abschnitt Zu einem anderen Standard-Cloud-Projekt wechseln. Nachdem Sie das Google Cloud-Projekt festgelegt haben, wählen Sie auf der linken Seite Editor aus, um zum Code-Editor zurückzukehren.
Code zum Skript hinzufügen
Das folgende Codebeispiel zeigt, wie Sie Ereignisse mit verschiedenen eventType
-Werten auflisten, lesen und erstellen.
Fügen Sie Folgendes in den Codeeditor ein.
const CALENDAR_ID = 'CALENDAR_ID' || 'primary'; /** Lists default events. */ function listDefaultEvents() { listEvents('default'); } /** Lists birthday events. */ function listBirthdays() { listEvents('birthday'); } /** Lists events from Gmail. */ function listEventsFromGmail() { listEvents('fromGmail'); } /** * Lists events with the given event type. If no type is specified, lists all events. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list */ function listEvents(eventType = undefined) { // Query parameters for the list request. const optionalArgs = { eventTypes: eventType ? [eventType] : undefined, singleEvents: true, timeMax: '2024-07-30T00:00:00+01:00', timeMin: '2024-07-29T00:00:00+01:00', } try { var response = Calendar.Events.list(CALENDAR_ID, optionalArgs); response.items.forEach(event => console.log(event)); } catch (exception) { console.log(exception.message); } } /** * Reads the event with the given eventId. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get */ function readEvent() { try { var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID'); console.log(response); } catch (exception) { console.log(exception.message); } } /** Creates a default event. */ function createDefaultEvent() { const event = { start: { dateTime: '2024-07-30T10:30:00+01:00'}, end: { dateTime: '2024-07-30T12:30:00+01:00'}, description: 'Created from Apps Script.', eventType: 'default', summary: 'Sample event', } createEvent(event); } /** Creates a birthday event. */ function createBirthday() { const event = { start: { date: '2024-01-29' }, end: { date: '2024-01-30' }, eventType: 'birthday', recurrence: ["RRULE:FREQ=YEARLY"], summary: "My friend's birthday", transparency: "transparent", visibility: "private", } createEvent(event); } /** * Creates a Calendar event. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert */ function createEvent(event) { try { var response = Calendar.Events.insert(event, CALENDAR_ID); console.log(response); } catch (exception) { console.log(exception.message); } }
Ersetzen Sie Folgendes:
CALENDAR_ID
: E-Mail-Adresse des Kalenders, in dem Ereignisse abgerufen und erstellt werden sollen. Diese Konstante ist anfangs auf'primary'
festgelegt. Das ist ein Keyword für den Zugriff auf den primären Kalender des angemeldeten Nutzers. Wenn Sie diesen Wert ändern, können Sie Ereignisse in den Kalendern anderer Nutzer lesen, auf die Sie Zugriff haben.EVENT_ID
: ID des Ereignisses. Sie können Events:list aufrufen, um Ereignis-IDs abzurufen.
Codebeispiel ausführen
- Wählen Sie über dem Code-Editor die auszuführende Funktion aus dem Drop-down-Menü aus und klicken Sie auf Ausführen.
- Bei der ersten Ausführung werden Sie aufgefordert, den Zugriff zu autorisieren. Apps Script den Zugriff auf Ihren Kalender erlauben
- Die Ergebnisse der Scriptausführung können Sie im Ausführungslog unten im Fenster ansehen.