Auf dieser Seite werden die eventType-Property und die Spezifikationen der in der Google Calendar API verfügbaren Ereignistypen erläutert.
In Google Kalender können Nutzer allgemeine Ereignisse sowie Ereignisse erstellen, die für bestimmte Anwendungsfälle konzipiert sind und benutzerdefinierte Properties haben.
Sie finden den Ereignistyp an den folgenden Stellen in der API:
- Alle Ereignisse geben einen
eventTypezurück. - Legen Sie
eventTypefest, wenn Sie eine Ereignisressource erstellen oder aktualisieren. Wenn der Wert nicht festgelegt ist, verwendet die API'default'. - Geben Sie
eventTypesin einemevents.list-Aufruf an, um Ereignisse bestimmter Typen aufzulisten. Wenn kein Typ angegeben ist, gibt die API alle Ereignistypen zurück. - Geben Sie
eventTypesin einemevents.watch-Aufruf an, um Updates zu Ereignissen bestimmter Typen zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen abonniert.
Standardereignis
Ereignisse mit dem Ereignistyp default werden als eine der Hauptressourcen der Calendar API erstellt und verwendet. Sie unterstützen eine Vielzahl von
Properties
um das Ereignis weiter anzupassen.
Unter Ereignisse erstellen erfahren Sie, wie Sie mit Kalenderereignissen arbeiten.
Geburtstag
Geburtstage sind besondere ganztägige Ereignisse, die sich jährlich wiederholen.
Nutzer können Geburtstagstermine manuell in Google Kalender erstellen. Außerdem werden die Geburtstage mit Google Kalender synchronisiert, wenn Nutzer eine Person hinzufügen und ihren Geburtstag sowie andere wichtige Termine in Google Kontakteaufnehmen. Die Geburtstage der Nutzer werden auch aus ihrem Google-Kontoprofilmit Google Kalender synchronisiert.
Die Calendar API unterstützt die Methoden events.get,
events.instances und
events.list zum Lesen von Geburtstagsterminen. Sie können eventTypes auf
'birthday' festlegen, um nur Geburtstagstermine aufzulisten. Wenn kein Typ angegeben ist, werden in der Antwort Geburtstage zusammen mit allen anderen Ereignistypen aufgeführt.
In den zurückgegebenen Event Objekten finden Sie im
birthdayProperties
Feld weitere Informationen zu diesem besonderen Ereignis. birthdayProperties hat die folgenden Felder:
type: Typ dieses besonderen Ereignisses, z. B. Geburtstag, Jahrestag oder ein anderes wichtiges Datum.customTypeName: Vom Nutzer angegebenes Label für dieses besondere Ereignis. Dieses Feld wird ausgefüllt, wenntypeauf'custom'gesetzt ist.contact: Ressourcenname des Kontakts, mit dem dieses besondere Ereignis verknüpft ist, falls vorhanden. Das Format ist'people/c12345'und kann verwendet werden, um Kontaktdetails aus der People APIabzurufen.
Mit der API können Sie Geburtstagstermine mit der
events.insert Methode
und den folgenden Spezifikationen erstellen:
eventTypeist auf'birthday'gesetzt.startundendFelder müssen ein ganztägiges Ereignis definieren, das genau einen Tag dauert.visibilityDer Wert des Felds muss'private'sein.transparencyDer Wert des Felds muss'transparent'sein.- Es muss eine jährliche Wiederholung geben. Das
recurrenceFeld muss'RRULE:FREQ=YEARLY'sein. Geburtstermine am 29. Februar müssen die folgende Wiederholungsregel haben:'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'. - Es kann eine
colorId,summaryundremindershaben. - Es kann
birthdayPropertieshaben. Wenn angegeben,typemuss'birthday'sein und sowohlcustomTypeNameals auchcontactmüssen leer sein. - Es dürfen keine anderen Ereignis-Properties vorhanden sein.
Mit der API können Sie die
colorId,
summary und
reminders von Geburtstagsterminen mit den events.update
und events.patch Methoden aktualisieren.
Sie können auch die Felder start und
end aktualisieren
um das Ereignisdatum zu ändern. In diesem Fall müssen die neuen Werte ein ganztägiges Ereignis definieren, das genau einen Tag dauert. Die Zeitangaben eines Geburtstagstermins können nicht
aktualisiert werden, wenn das Ereignis mit einem
contact verknüpft ist oder
der type
'self' ist.
Mit der Calendar API können keine Geburtstagstermine mit benutzerdefinierten
birthdayProperties erstellt oder
diese Properties aktualisiert werden. Wichtige Termine können mit der
People API bearbeitet werden. Die Änderungen werden mit
Google Kalender synchronisiert. Ebenso können Nutzer ihren eigenen Geburtstag in ihrem
Google-Kontoprofil bearbeiten. Er wird dann mit
Google Kalender synchronisiert.
Anfragen, mit denen versucht wird, einen Geburtstag auf nicht unterstützte Weise zu erstellen oder zu aktualisieren, schlagen fehl. In diesem Fall finden Sie in der Fehlermeldung Informationen zum Problem.
Die API unterstützt den events.import Vorgang
für Geburtstagstermine. Das Ereignis wird jedoch als Standardereignis importiert. Das
heißt, der eventType ist
'default'.
Die API unterstützt die events.watch Methode
, um Änderungen an Geburtstagsterminen in Google Kalender zu abonnieren.
Sie können eventTypes auf
'birthday' setzen, um Updates zu Geburtstagsterminen zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen abonniert, einschließlich Geburtstage.
Sie können Geburtstagstermine mit der
events.delete Methode der
Calendar API löschen. Wenn Sie einen Geburtstagstermin aus Google Kalender löschen, hat das keine Auswirkungen auf die Daten in Google Kontakte oder
im Google-Kontoprofil.
Das Ändern des Organisators eines Geburtstagstermins mit den
events.move oder
events.update Methoden wird nicht unterstützt.
Termine aus Gmail
Ereignisse, die automatisch aus Gmail
generiert werden, haben den 'fromGmail' Ereignistyp.
Mit der Calendar API kann dieser Ereignistyp nicht mit der
events.insert Methode erstellt werden.
Mit der API können Sie die
colorId,
reminders,
visibility,
transparency,
status,
attendees,
private,
und shared
erweiterten Properties mit den Methoden events.update
und events.patch aktualisieren.
Die API unterstützt die events.get und
events.list Methoden zum Lesen von Ereignisse aus Gmail. Sie können
eventTypes auf
'fromGmail' setzen, um nur Ereignisse aufzulisten, die aus Gmail generiert wurden. Wenn kein Typ angegeben ist, werden Ereignisse aus Gmail zusammen mit allen anderen Ereignistypen aufgeführt.
Die API unterstützt die events.watch
Methode, um Änderungen an Ereignissen aus Gmail in
Google Kalender zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen abonniert, einschließlich 'fromGmail'.
Sie können Ereignisse aus Gmail mit der
events.delete Methode
der Calendar API löschen.
Das Ändern des Organisators eines Ereignisses aus Gmail mit den
events.move oder
events.update Methoden
wird nicht unterstützt.
Fokuszeit, Abwesenheit und Arbeitsort
Mit der Calendar API können Sie Ereignisse 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 Ereignisse für Fokuszeit, Abwesenheit und Arbeits ort verwalten.
Ereignistypen in Apps Script
Apps Script ist eine cloudbasierte Scriptsprache auf JavaScript-Basis, mit der Sie Geschäftsanwendungen erstellen können, die in Google Workspace eingebunden werden. Skripts werden in einem browserbasierten Code-Editor entwickelt und auf den Servern von Google gespeichert und ausgeführt. Unter Apps Script Kurzanleitung erfahren Sie, wie Sie mit Apps Script Anfragen an die Calendar API senden.
In der folgenden Anleitung wird beschrieben, wie Sie Ereignisse mit der Calendar API als erweiterten Dienst in Apps Script lesen und verwalten. Eine vollständige Liste der Ressourcen und Methoden der Calendar API finden Sie in der Referenzdokumentation.
Skript erstellen und einrichten
- Erstellen Sie ein Skript unter script.google.com/create.
- Klicken Sie im linken Bereich neben Dienste auf „Dienst hinzufügen“ .
- Wählen Sie Calendar API aus und klicken Sie auf Hinzufügen.
- Nachdem Sie die API aktiviert haben, wird sie im linken Bereich angezeigt. Sie können die verfügbaren Methoden und Klassen in der API auflisten, indem Sie
Calendarin den Editor eingeben.
Optional: Cloud-Projekt aktualisieren
Jedes Apps Script-Projekt hat ein zugehöriges Cloud-Projekt. Ihr Skript kann das Standardprojekt verwenden, das automatisch von Apps Script erstellt wird. Wenn Sie ein benutzerdefiniertes Cloud-Projekt verwenden möchten, lesen Sie Zu einem anderen Standard-Cloud-Projekt wechseln. Nachdem Sie das Cloud-Projekt festgelegt haben, wählen Sie links 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 Code-Editor 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 anfänglich auf'primary'gesetzt. Das ist ein Schlüsselwort 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önnenevents.listaufrufen, um Ereignis-IDs abzurufen.
Codebeispiel ausführen
- Wählen Sie über dem Code-Editor im Drop-down-Menü die auszuführende Funktion aus und klicken Sie auf Ausführen.
- Wenn Sie das Skript zum ersten Mal ausführen, werden Sie aufgefordert, den Zugriff zu autorisieren. Prüfen Sie, ob Apps Script auf Ihren Kalender zugreifen darf, und erlauben Sie den Zugriff.
- Die Ergebnisse der Skriptausführung finden Sie im Ausführungsprotokoll unten im Fenster.