Panduan Developer CalDAV API

CalDAV adalah ekstensi WebDAV yang menyediakan standar bagi klien untuk mengakses informasi kalender di server jarak jauh.

Google menyediakan antarmuka CalDAV yang dapat Anda gunakan untuk melihat dan mengelola kalender menggunakan protokol CalDAV.

Spesifikasi

Untuk setiap spesifikasi yang relevan, dukungan CalDAV Google adalah sebagai berikut:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
    • Mendukung metode HTTP GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND, dan PROPPATCH.
    • Tidak mendukung metode HTTP LOCK, UNLOCK, COPY, MOVE, atau MKCOL, atau header If* (kecuali If-Match).
    • Tidak mendukung properti WebDAV arbitrer (yang ditentukan pengguna).
    • Tidak mendukung Kontrol Akses WebDAV (rfc3744).
  • rfc4791: Calendaring Extensions to WebDAV (CalDAV)
    • Mendukung metode HTTP REPORT. Semua laporan kecuali free-busy-query diimplementasikan.
    • Tidak mendukung metode HTTP MKCALENDAR.
    • Tidak mendukung tindakan AUDIO.
  • rfc5545: iCalendar
    • Data yang ditampilkan di antarmuka CalDAV diformat sesuai dengan spesifikasi iCalendar.
    • Saat ini tidak mendukung data VTODO atau VJOURNAL.
    • Tidak mendukung ekstensi Apple iCal® untuk mengizinkan properti URL yang dapat ditetapkan pengguna.
  • rfc6578: Collection Synchronization for WebDAV
    • Aplikasi klien harus beralih ke mode operasi ini setelah sinkronisasi awal.
  • rfc6638: Scheduling Extensions to CalDAV
    • Mendukung "kotak masuk" trivial, yang selalu kosong.
    • Undangan yang Anda terima akan otomatis dikirim ke koleksi "acara" Anda, bukan ditempatkan ke "kotak masuk" Anda.
    • Tidak mendukung pencarian ketersediaan.
  • caldav-ctag-02: Calendar Collection Entity Tag (CTag) in CalDAV
    • ctag kalender seperti etag resource; ctag akan berubah jika ada perubahan pada kalender. Hal ini memungkinkan aplikasi klien dengan cepat menentukan bahwa aplikasi tersebut tidak perlu menyinkronkan acara yang diubah.
  • calendar-proxy: Calendar User Proxy Functionality in CalDAV
    • Untuk meningkatkan performa sinkronisasi kalender dari perangkat iOS, yang tidak mendukung delegasi, penggunaan properti calendar-proxy-read-for atau calendar-proxy-write-for dengan UserAgent iOS akan gagal.

Kami belum memberikan implementasi lengkap dari semua spesifikasi yang relevan. Namun, untuk banyak klien seperti aplikasi Kalender Apple, protokol CalDAV akan beroperasi dengan benar.

Catatan: Untuk keamanan akun dan mencegah penyalahgunaan, Google dapat menetapkan cookie di aplikasi klien yang mengakses data melalui CalDAV.

Membuat client ID

Untuk menggunakan CalDAV API, Anda harus memiliki Akun Google. Jika sudah memiliki akun yang dapat digunakan, Anda sudah siap.

Sebelum dapat mengirim permintaan ke CalDAV API, Anda harus mendaftarkan klien Anda ke Konsol Google API dengan membuat project.

Buka Konsol Google API. Klik Buat project, masukkan nama, lalu klik Buat.

Langkah berikutnya adalah mengaktifkan CalDAV API.

Untuk mengaktifkan API untuk project Anda, lakukan hal berikut:

  1. Buka API Library di Konsol Google API. Jika diminta, pilih project atau buat project baru. API Library menampilkan daftar semua API yang tersedia, yang dikelompokkan berdasarkan kelompok produk dan popularitas.
  2. Jika API yang ingin Anda aktifkan tidak terlihat dalam daftar, gunakan penelusuran untuk mencarinya.
  3. Pilih API yang ingin Anda aktifkan, lalu klik tombol Aktifkan.
  4. Jika diminta, aktifkan penagihan.
  5. Jika diminta, setujui Persyaratan Layanan API.
Untuk melakukan permintaan CalDAV API , Anda memerlukan Client ID dan Client Secret.

Untuk menemukan client ID dan client secret project Anda, lakukan hal berikut:

  1. Pilih kredensial OAuth 2.0 yang ada atau buka halaman Kredensial.
  2. Jika Anda belum melakukannya, buat kredensial OAuth 2.0 project Anda dengan mengklik Buat kredensial > ID klien OAuth, dan memberikan informasi yang diperlukan untuk membuat kredensial.
  3. Cari Client ID di bagian OAuth 2.0 client IDs. Untuk melihat detailnya, klik client ID.

Menghubungkan ke server CalDAV Google

Untuk menggunakan antarmuka CalDAV, program klien awalnya terhubung dengan server kalender di salah satu dari dua titik awal. Dalam kedua kasus tersebut, koneksi harus dilakukan melalui HTTPS dan harus menggunakan skema autentikasi OAuth 2.0. Server CalDAV akan menolak untuk mengautentikasi permintaan kecuali jika permintaan tersebut tiba melalui HTTPS dengan autentikasi OAuth 2.0 dari Akun Google. Mencoba terhubung melalui HTTP atau menggunakan Autentikasi Dasar akan menghasilkan kode status HTTP 401 Unauthorized.

Jika program klien (seperti aplikasi Kalender Apple) memerlukan koleksi utama sebagai titik awal, URI untuk terhubung adalah:

https://apidata.googleusercontent.com/caldav/v2/valid/user

Dengan valid harus diganti dengan "ID kalender" kalender yang akan diakses. ID ini dapat ditemukan melalui antarmuka web Google Kalender sebagai berikut: di menu pull-down di samping nama kalender, pilih Setelan Kalender. Di halaman yang dihasilkan, ID kalender ditampilkan di bagian berlabel Alamat Kalender. ID kalender untuk kalender utama pengguna sama dengan alamat email pengguna tersebut.

Jika program klien (seperti Mozilla Sunbird) memerlukan koleksi kalender sebagai titik awal, URI untuk terhubung adalah:

https://apidata.googleusercontent.com/caldav/v2/valid/events

Endpoint lama https://www.google.com/calendar/dav tidak digunakan lagi dan tidak lagi didukung; gunakan dengan risiko Anda sendiri. Sebaiknya Anda beralih ke format endpoint baru yang dijelaskan di atas.

iCal® adalah merek dagang Apple Inc.