Ereignistypen

Auf dieser Seite werden die eventType-Eigenschaft 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 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 die Einstellung nicht festgelegt ist, 'default' wird der Typ verwendet.
  • eventTypes können in einem Events:list -Aufruf angegeben werden, um Ereignisse bestimmter Typen aufzulisten. Wenn kein Typ angegeben ist, werden alle Ereignistypen zurückgegeben.
  • eventTypes können in einem Events:watch -Aufruf angegeben werden, um Updates zu Ereignissen bestimmter Typen zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen abonniert.

Standardereignis

Ereignisse mit dem Ereignistyp default werden erstellt und als eine der Hauptressourcen der Google Calendar API verwendet. Sie unterstützen eine Vielzahl von Eigenschaften mit denen das Ereignis weiter angepasst werden kann.

Unter Ereignisse erstellen erfahren Sie, wie Sie mit Google Kalender-Ereignissen arbeiten.

Geburtstag

Geburtstage sind besondere ganztägige Ereignisse, die sich jährlich wiederholen.

Nutzer können in Google Kalender manuell Geburtstagsereignisse 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. Der Geburtstag des Nutzers wird auch aus seinem Google-Kontoprofilmit Google Kalender synchronisiert.

Die Google Calendar API unterstützt die Methoden get, instances und list zum Lesen von Geburtstags ereignissen. eventTypes kann auf 'birthday' gesetzt werden, um nur Geburtstagsereignisse aufzulisten. Wenn kein Typ angegeben ist, werden 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, wenn type auf '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 Geburtstagsereignisse mit der insert Methode und den folgenden Spezifikationen erstellt werden:

  • eventType ist auf 'birthday' gesetzt.
  • start und end Felder müssen ein ganztägiges Ereignis definieren, das genau einen Tag dauert.
  • visibility Der Wert des Felds muss 'private' sein.
  • transparency Der Wert des Felds muss 'transparent' sein.
  • Es muss eine jährliche Wiederholung festgelegt sein. Das bedeutet, dass das recurrence Feld 'RRULE:FREQ=YEARLY' sein muss. Für Geburtstagsereignisse am 29. Februar muss die folgende Wiederholungsregel gelten: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • Es können colorId, summary und reminders festgelegt werden.
  • Es können birthdayProperties festgelegt werden. Wenn angegeben, type muss 'birthday' sein und sowohl customTypeName als auch contact müssen leer sein.
  • Es dürfen keine anderen Ereigniseigenschaften festgelegt werden.

Mit der API können die colorId, summary und reminders von Geburtstags ereignissen mit den update und patch Methoden aktualisiert werden. start und end Felder können auch aktualisiert werden , um das Ereignisdatum zu ändern. In diesem Fall müssen die neuen Werte ein ganztägiges Ereignis definieren, das genau einen Tag dauert. Die Zeitdetails eines Geburtstagsereignisses können nicht aktualisiert werden, wenn das Ereignis mit einem contact verknüpft ist oder der type 'self' ist.

Mit der Google Calendar API können keine Geburtstagsereignisse 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. Ebenso können Nutzer ihren eigenen Geburtstag in ihrem Google-Kontoprofil bearbeiten. Die Änderungen werden 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 müssen Sie die Fehlermeldung prüfen, 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: Der eventType ist 'default'.

Die API unterstützt die watch Methode um Änderungen an Geburtstagsereignissen in Google Kalender zu abonnieren. eventTypes kann auf 'birthday' gesetzt werden, um Updates zu Geburtstagsereignissen zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen, einschließlich Geburtstage, abonniert.

Geburtstagsereignisse können mit der delete Methode der Google Calendar API gelöscht werden. Das Löschen eines Geburtstagsereignisses aus Google Kalender hat keine Auswirkungen auf die Daten in Google Kontakte oder im Google-Kontoprofil.

Das Ändern des Organisators eines Geburtstagsereignisses mit den Methoden move oder update wird nicht unterstützt.

Termine aus Gmail

Ereignisse, die automatisch aus Gmail generiert werden, haben den 'fromGmail' Ereignistyp.

Mit der Google Calendar API kann dieser Ereignistyp nicht mit der insert Methode erstellt werden.

Mit der API können die colorId, reminders, visibility, transparency, status, attendees, private und shared erweiterten Eigenschaften mit den update und patch Methoden aktualisiert werden.

Die API unterstützt get und list Methoden zum Lesen von Ereignissen aus Gmail. eventTypes kann auf 'fromGmail' gesetzt werden, 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 watch Methode um Änderungen an Ereignissen aus Gmail in Google Kalender zu abonnieren. Wenn kein Typ angegeben ist, werden alle Ereignistypen, einschließlich 'fromGmail', abonniert.

Ereignisse aus Gmail können mit der delete Methode der Google Calendar API gelöscht werden.

Das Ändern des Organisators eines Ereignisses aus Gmail mit move oder update Methoden wird nicht unterstützt.

Fokuszeit, Abwesenheit und Arbeitsort

Mit der Google Calendar API können Ereignisse erstellt und verwaltet werden, 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 Google Apps Script

Google Apps Script ist eine JavaScript-basierte Cloud Skriptsprache, mit der Sie Geschäftsanwendungen erstellen können, die in Google Workspace eingebunden werden. Skripts werden in einem browserbasierten Codeeditor entwickelt und auf den Servern von Google gespeichert und ausgeführt. Unter Google Apps Script Schnellstart erfahren Sie, wie Sie mit Apps Script Anfragen an die Google Calendar API senden.

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, siehe die Referenzdokumentation.

Skript erstellen und einrichten

  1. Erstellen Sie ein Skript unter script.google.com/create.
  2. Klicken Sie im linken Bereich neben Dienste auf „Dienst hinzufügen“ .
  3. Wählen Sie Google Calendar API aus und klicken Sie auf Hinzufügen.
  4. Nach der Aktivierung wird die API im linken Bereich angezeigt. Verfügbare Methoden und Klassen in der API können mit dem Schlüsselwort Calendar im Editor aufgelistet werden.

Optional: Google Cloud-Projekt aktualisieren

Jedes Google Apps Script-Projekt hat ein zugehöriges Google Cloud-Projekt. Ihr Skript kann das Standardprojekt verwenden, das automatisch von Google Apps Script erstellt wird. Wenn Sie ein benutzerdefiniertes Google Cloud-Projekt verwenden möchten, lesen Sie den Hilfeartikel Zu einem anderen Standard-Cloud-Projekt wechseln. Nachdem Sie das Google Cloud-Projekt festgelegt haben, wählen Sie links Editor aus, um zum Codeeditor zurückzukehren.

Code zum Skript hinzufügen

Das folgende Codebeispiel zeigt, wie Sie Ereignisse mit verschiedenen eventType-Werten auflisten, lesen und erstellen.

  1. 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 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önnen die Methode Events:list aufrufen, um Ereignis-IDs abzurufen.

Codebeispiel ausführen

  1. Wählen Sie über dem Codeeditor im Drop-down-Menü die auszuführende Funktion aus und klicken Sie auf Ausführen.
  2. Bei der ersten Ausführung werden Sie aufgefordert, den Zugriff zu autorisieren. Prüfen Sie, ob Apps Script auf Ihren Kalender zugreifen darf, und erlauben Sie den Zugriff.
  3. Die Ergebnisse der Skriptausführung können Sie im Ausführungsprotokoll unten im Fenster sehen.