Kolom Resource peristiwa mencakup data paling umum yang terkait dengan peristiwa, seperti lokasi, waktu mulai, dll., tetapi aplikasi mungkin perlu menyimpan metadata tambahan khusus untuk kasus penggunaannya. Calendar API memberikan kemampuan untuk menyetel key-value pair tersembunyi dengan peristiwa, yang disebut properti yang diperluas. Properti yang diperluas memudahkan penyimpanan data khusus aplikasi untuk suatu peristiwa tanpa harus menggunakan database eksternal.
Visibilitas
Ada dua jenis properti diperluas yang tersedia: pribadi dan bersama.
Properti bersama dapat dilihat dan diedit oleh semua tamu peristiwa, sementara
properti pribadi ditetapkan pada "salinan" lokal peristiwa satu tamu. Lebih jelasnya, properti pribadi bersifat khusus untuk calendarId
dan eventId
yang digunakan dalam permintaan, sedangkan properti bersama akan ditampilkan terlepas dari calendarId
yang digunakan dalam permintaan.
Menambahkan & memperbarui properti
Properti yang diperluas ditetapkan pada resource Peristiwa, dan seperti kolom lainnya yang dapat ditetapkan dalam permintaan insert, update, dan patch. Menggunakan permintaan patch adalah metode yang disarankan, karena memungkinkan Anda memanipulasi beberapa properti tanpa menyentuh properti lainnya. Menambahkan properti baru dengan kunci yang sama akan menimpa properti yang ada dengan kunci yang sama. Contoh berikut menunjukkan setelan properti pribadi:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": "yes"
}
}
}
Hapus properti
Semua properti yang tidak disertakan dalam permintaan update akan dihapus, tetapi pendekatan yang lebih baik adalah membuat permintaan patch untuk menyetel nilainya ke null. Contoh berikut menunjukkan penghapusan properti pribadi:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": null
}
}
}
Telusuri properti
Anda dapat menelusuri peristiwa berdasarkan nilai di properti yang diperluas menggunakan permintaan Events.list.
Tetapkan kolom
privateExtendedProperty
atau
sharedExtendedProperty
ke batasan dalam format propertyName=value
,
yang akan menelusuri properti pribadi dan bersama. Contoh berikut menampilkan peristiwa dengan properti pribadi petsAllowed=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes
Anda dapat mengulangi kolom ini beberapa kali dan batasan dijadikan OR
bersama, sehingga peristiwa hanya perlu mencocokkan salah satu batasan untuk ditampilkan.
Contoh berikut menemukan peristiwa dengan properti pribadi
petsAllowed=yes
atau isOutside=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &privateExtendedProperty=isOutside%3Dyes
Perlu diketahui bahwa batasan pada properti pribadi dan bersama digabungkan menggunakan DAN, sehingga peristiwa harus cocok dengan kedua kumpulan batasan agar dapat ditampilkan.
Contoh berikut menemukan peristiwa dengan properti pribadi petsAllowed=yes
dan properti publik createdBy=myApp
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &sharedExtendedProperty=createdBy%3DmyApp
Batas
- Ukuran maksimum kunci properti adalah 44 karakter, dan properti dengan kunci yang lebih panjang akan dihapus secara otomatis.
- Ukuran maksimum nilai properti adalah 1.024 karakter, dan properti dengan nilai yang lebih panjang akan otomatis dipotong.
- Sebuah peristiwa dapat memiliki maksimal 300 properti dengan total ukuran hingga 32 kB (ukuran kunci + ukuran nilai). 300 properti ini mencakup properti bersama dan pribadi, di semua "salinan" acara.