Die Felder der Ereignisressourcen umfassen die gängigsten Daten, die mit einem Ereignis verknüpft sind, z. B. Ort und Beginnzeit. In Anwendungen können jedoch zusätzliche Metadaten gespeichert werden, die für den jeweiligen Anwendungsfall spezifisch sind. Mit der Kalender API können Sie für ein Ereignis ausgeblendete Schlüssel/Wert-Paare festlegen, die als erweiterte Eigenschaften bezeichnet werden. Mit erweiterten Properties können Sie anwendungsspezifische Daten für ein Ereignis ganz einfach speichern, ohne eine externe Datenbank verwenden zu müssen.
Sichtbarkeit
Es gibt zwei Arten von erweiterten Properties: privat und gemeinsam genutzt.
Freigegebene Properties sind für alle Teilnehmer einer Veranstaltung sichtbar und bearbeitbar. Private Properties werden in der lokalen Kopie der Veranstaltung eines Teilnehmers festgelegt. Private Properties sind spezifisch für die in der Anfrage verwendeten calendarId
und eventId
, während freigegebene Properties unabhängig von der in der Anfrage verwendeten calendarId
angezeigt werden.
Unterkünfte hinzufügen und aktualisieren
Erweiterte Properties werden für die „Ereignisse“-Ressource festgelegt und können wie andere Felder in insert-, update- und patch-Anfragen festgelegt werden. Die Verwendung von Patchanfragen ist die bevorzugte Methode, da Sie damit einige Properties ändern und andere unverändert lassen können. Wenn Sie eine neue Property mit demselben Schlüssel hinzufügen, werden alle vorhandenen Properties mit demselben Schlüssel überschrieben. Im folgenden Beispiel wird eine private Property festgelegt:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": "yes"
}
}
}
Properties löschen
Alle Properties, die nicht in einer Aktualisierungsanfrage enthalten sind, werden gelöscht. Besser ist es jedoch, eine Patch-Anfrage zu senden, um den Wert auf „null“ zu setzen. Im folgenden Beispiel wird das Löschen einer privaten Property veranschaulicht:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": null
}
}
}
Eigenschaften suchen
Mit einer Events.list-Anfrage können Sie nach Ereignissen suchen, die anhand der Werte ihrer erweiterten Properties gefiltert werden.
Legen Sie für das Feld privateExtendedProperty oder sharedExtendedProperty eine Einschränkung im Format propertyName=value
fest, um jeweils nach privaten und freigegebenen Unterkünften zu suchen. Im folgenden Beispiel werden Ereignisse mit der privaten Property petsAllowed=yes
zurückgegeben:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes
Sie können diese Felder mehrmals wiederholen. Die Einschränkungen werden mit OR verknüpft. Ereignisse müssen also nur einer der Einschränkungen entsprechen, um zurückgegeben zu werden.
Im folgenden Beispiel werden Ereignisse mit der privaten Property petsAllowed=yes
oder isOutside=yes
ermittelt:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &privateExtendedProperty=isOutside%3Dyes
Beachten Sie, dass Einschränkungen für private und freigegebene Properties jedoch mit „AND“ verknüpft sind. Ereignisse müssen also beiden Einschränkungen entsprechen, um zurückgegeben zu werden.
Im folgenden Beispiel werden Ereignisse mit der privaten Property petsAllowed=yes
und der öffentlichen Property createdBy=myApp
ermittelt:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &sharedExtendedProperty=createdBy%3DmyApp
Limits
- Der Schlüssel einer Property darf maximal 44 Zeichen lang sein. Properties mit längeren Schlüsseln werden ohne Benachrichtigung gelöscht.
- Der Wert einer Property darf maximal 1.024 Zeichen lang sein. Bei Properties mit längeren Werten erfolgt ein geräuschloses Kürzen.
- Ein Ereignis kann bis zu 300 Eigenschaften mit einer Gesamtgröße von bis zu 32 KB haben (Schlüsselgröße + Wertgröße). Diese 300 Unterkünfte umfassen freigegebene und private Unterkünfte in allen „Kopien“ der Veranstaltung.