Ereignistypen

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 eventType zurück.
  • Legen Sie eventType fest, wenn Sie eine Ereignisressource erstellen oder aktualisieren. Wenn der Wert nicht festgelegt ist, verwendet die API 'default'.
  • Geben Sie eventTypes in einem events.list -Aufruf an, um Ereignisse bestimmter Typen aufzulisten. Wenn kein Typ angegeben ist, gibt die API alle Ereignistypen zurück.
  • Geben Sie eventTypes in einem events.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, 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 Sie Geburtstagstermine mit der events.insert Methode und den folgenden Spezifikationen erstellen:

  • 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 geben. Das recurrence Feld 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, summary und reminders haben.
  • Es kann birthdayProperties haben. Wenn angegeben, type muss 'birthday' sein und sowohl customTypeName als auch contact mü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

  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 Calendar API aus und klicken Sie auf Hinzufügen.
  4. 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 Calendar in 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.

  1. 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önnen events.list aufrufen, um Ereignis-IDs abzurufen.

Codebeispiel ausführen

  1. Wählen Sie über dem Code-Editor im Drop-down-Menü die auszuführende Funktion aus und klicken Sie auf Ausführen.
  2. 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.
  3. Die Ergebnisse der Skriptausführung finden Sie im Ausführungsprotokoll unten im Fenster.