CalDAV API Geliştirici Kılavuzu

CalDAV, istemcilerin uzak bir sunucudaki takvim bilgilerine erişmesi için bir standart sunan WebDAV uzantısıdır.

Google, CalDAV protokolünü kullanarak takvimleri görüntülemek ve yönetmek için kullanabileceğiniz bir CalDAV arayüzü sağlar.

Özellikler

İlgili spesifikasyonların her biri için Google'ın CalDAV desteği aşağıdaki gibidir:

  • RFC4918: Web'de Dağıtılmış Yazma ve Sürüm Oluşturma için HTTP Uzantıları (WebDAV)
    • GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND ve PROPPATCH HTTP yöntemlerini destekler.
    • LOCK, UNLOCK, COPY, MOVE veya MKCOL HTTP yöntemlerini veya If* başlığını (If-Match hariç) desteklemez.
    • Rastgele (kullanıcı tanımlı) WebDAV özelliklerini desteklemez.
    • WebDAV Erişim Denetimi'ni (RFC3744) desteklemez.
  • RFC4791: WebDAV için Uzantıları Takvim Oluşturma
    • REPORT HTTP yöntemini destekler. Uygun/meşgul sorgusu hariç tüm raporlar uygulanır.
    • MKCALENDAR HTTP yöntemini desteklemiyor.
    • AUDIO işlemini desteklemez.
  • RFC5545: iCalendar
    • CalDAV arayüzünde gösterilen veriler, iCalendar spesifikasyonuna göre biçimlendirilir.
    • Şu anda VTODO veya VJOURNAL verilerini desteklememektedir.
    • Kullanıcı tarafından ayarlanabilen URL özelliklerine izin vermek için Apple iCal® uzantısını desteklemez.
  • RFC6578: WebDAV için Koleksiyon Senkronizasyonu
    • İstemci uygulamaları, ilk senkronizasyondan sonra bu çalışma moduna geçmelidir.
  • RFC6638: CalDAV Uzantılarını Planlama
    • Her zaman boş olan küçük bir "gelen kutusunu" destekler.
    • Aldığınız davetiyeler, "gelen kutunuza" eklenmek yerine otomatik olarak "etkinlikler" koleksiyonunuza gönderilir.
    • Serbest-meşgul aramasını desteklemez.
  • caldav-ctag-02: CalDAV'daki Takvim Koleksiyonu Varlık Etiketi (CTag)
    • ctag takvimi, etag kaynağına benzer. Takvimdeki herhangi bir değişiklik olduğunda takvim de değişir. Bu, istemci uygulamasının değiştirilen etkinlikleri senkronize etmesi gerekmediğini hızlı bir şekilde belirlemesini sağlar.
  • calendar-proxy: CalDAV'daki Takvim Kullanıcısı Proxy İşlevi
    • Yetkilendirmeyi desteklemeyen iOS cihazlardan takvim senkronizasyonunun performansını iyileştirmek için calendar-proxy-read-for veya calendar-proxy-write-for özelliklerinin iOS UserAgent ile kullanılması başarısız olur.

Bu konuyla ilgili spesifikasyonların tümünün tam olarak uygulanmasını henüz sağlamadık. Ancak Apple iCal gibi birçok istemci için CalDAV protokolü doğru bir şekilde çalışabilir.

Not: Hesap güvenliği ve kötüye kullanımın önlenmesi için Google, verilere CalDAV aracılığıyla erişen istemci uygulamalarında çerezler ayarlayabilir.

İstemci kimliğiniz oluşturuluyor

CalDAV API'yi kullanmak için bir Google Hesabınızın olması gerekir. Kullanabileceğiniz bir hesabınız varsa hazırsınız demektir.

CalDAV API'ye istek gönderebilmeniz için bir proje oluşturarak istemcinizi Google API Konsolu'na kaydetmeniz gerekir.

Google API Konsolu'na gidin. Proje oluştur'u tıklayın, bir ad girin ve Oluştur'u tıklayın.

Bir sonraki adım CalDAV API'yi etkinleştirmektir.

Projenizde bir API'yi etkinleştirmek için şunları yapın:

  1. Google API Konsolu'nda API Kitaplığı'nı açın. İstenirse bir proje seçin veya yeni bir proje oluşturun. API Kitaplığı, ürün ailesine ve popülerliğe göre gruplandırılmış tüm API'leri listeler.
  2. Etkinleştirmek istediğiniz API listede görünmüyorsa bulmak için arama özelliğini kullanın.
  3. Etkinleştirmek istediğiniz API'yi seçin ve ardından Etkinleştir düğmesini tıklayın.
  4. İstenirse faturalandırmayı etkinleştirin.
  5. İstenirse API'nin Hizmet Şartları'nı kabul edin.
CalDAV API isteklerini gerçekleştirmek için İstemci Kimliği ve İstemci Gizli Anahtarı gereklidir.

Projenizin istemci kimliğini ve istemci gizli anahtarını bulmak için aşağıdakileri yapın:

  1. Mevcut bir OAuth 2.0 kimlik bilgisini seçin veya Kimlik bilgileri sayfasını açın.
  2. Henüz yapmadıysanız Kimlik bilgileri oluştur > OAuth istemci kimliği'ni tıklayarak ve kimlik bilgilerini oluşturmak için gereken bilgileri sağlayarak projenizin OAuth 2.0 kimlik bilgilerini oluşturun.
  3. OAuth 2.0 istemci kimlikleri bölümünde İstemci Kimliği'ni bulun. Ayrıntılar için istemci kimliğini tıklayın.

Google'ın CalDAV sunucusuna bağlanma

İstemci programı CalDAV arayüzünü kullanmak için ilk olarak takvim sunucusuna iki başlangıç noktasından birinde bağlanır. Her iki durumda da bağlantı HTTPS üzerinden oluşturulmalı ve OAuth 2.0 kimlik doğrulama şemasını kullanmalıdır. CalDAV sunucusu, Google Hesabı için OAuth 2.0 kimlik doğrulamasıyla HTTPS üzerinden ulaşmadığı sürece isteğin kimliğini doğrulamayı reddeder. HTTP üzerinden bağlanmaya veya Temel Kimlik Doğrulama'yı kullanmaya çalışırken HTTP 401 Unauthorized durum kodu görüntülenir.

İstemci programı (Apple iCal gibi) başlangıç noktası olarak bir ana koleksiyon gerektirirse bağlanılacak URI:

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

Burada calid, erişilecek takvimin "takvim kimliği" ile değiştirilmelidir. Bu Google Takvim web arayüzünde şu şekilde bulunabilir: takvim adının yanındaki açılır menüden Takvim Ayarları'nı seçin. Açılan sayfada takvim kimliği, Takvim Adresi etiketli bir bölümde gösterilir. Bir kullanıcının birincil takviminin takvim kimliği, e-posta adresiyle aynıdır.

Bir istemci programı (Mozilla Sunbird gibi) başlangıç noktası olarak bir takvim koleksiyonu gerektirirse bağlanılacak URI:

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

Eski uç nokta (https://www.google.com/calendar/dav) kullanımdan kaldırıldı ve artık desteklenmiyor; riski size ait olmak üzere kullanabilirsiniz. Yukarıda açıklanan yeni uç nokta biçimine geçmenizi öneririz.

iCal, Apple Inc.ın ticari markasıdır.