CalDAV to rozszerzenie WebDAV, które zapewnia klientom dostęp do informacji z kalendarza na zdalnym serwerze.
Google udostępnia interfejs CalDAV, którego możesz używać do wyświetlania kalendarzy i zarządzania nimi za pomocą protokołu CalDAV.
Specyfikacja
W przypadku każdej ze specyfikacji Google zapewnia pomoc CalDAV:
- rfc4918: Rozszerzenia HTTP dla rozproszonego tworzenia i wersji wersji stron internetowych
(WebDAV)
- Obsługuje metody HTTP
GET
,PUT
,HEAD
,DELETE
,POST
,OPTIONS
,PROPFIND
iPROPPATCH
. - Nie obsługuje metod HTTP
LOCK
,UNLOCK
,COPY
,MOVE
aniMKCOL
ani nagłówkaIf*
(z wyjątkiemIf-Match
). - Nie obsługuje dowolnych (zdefiniowanych przez użytkownika) właściwości WebDAV.
- Nie obsługuje kontroli dostępu WebDAV (rfc3744).
- Obsługuje metody HTTP
- rfc4791: Kalendarzowanie rozszerzeń do WebDAV (CalDAV)
- Obsługuje metodę HTTP
REPORT
. Wdrożono wszystkie raporty z wyjątkiem zapytań wolnych. - Nie obsługuje metody HTTP
MKCALENDAR
. - Nie obsługuje działania
AUDIO
.
- Obsługuje metodę HTTP
- rfc5545: iCalendar
- Dane ujawnione w interfejsie CalDAV są sformatowane zgodnie ze specyfikacją iCalendar.
- Obecnie nie obsługuje danych
VTODO
aniVJOURNAL
. - Nie obsługuje rozszerzenia Apple iCal®, aby zezwalać na właściwości adresu URL ustawianego przez użytkownika.
- rfc6578: Synchronizacja kolekcji dla WebDAV
- Aplikacje klienckie muszą przełączyć się na ten tryb działania po początkowej synchronizacji.
- rfc6638: planowanie rozszerzeń do CalDAV
- Obsługuje trygon „skrzynkę odbiorczą”, która jest zawsze pusta.
- Otrzymane zaproszenia są automatycznie dostarczane do Twojej kolekcji „wydarzenia” zamiast do „skrzynki odbiorczej”.
- Nie obsługuje wyszukiwania informacji o stanie Wolny/Zajęty.
- caldav-ctag-02: tag elementu kolekcji kalendarzy (CTag) w CalDAV
- Kalendarz
ctag
jest jak zasóbetag
. Zmienia się on, gdy cokolwiek w kalendarzu zostanie zmienione. Dzięki temu aplikacja kliencka może szybko sprawdzić, czy nie musi synchronizować żadnych zmienionych zdarzeń.
- Kalendarz
- calendar-proxy: Funkcje proxy w kalendarzu użytkownika w CalDAV
- Aby poprawić wydajność synchronizacji kalendarzy na urządzeniach z iOS, które nie obsługują przekazywania dostępu, używanie właściwości
calendar-proxy-read-for
lubcalendar-proxy-write-for
z klientem użytkownika iOS nie powiedzie się.
- Aby poprawić wydajność synchronizacji kalendarzy na urządzeniach z iOS, które nie obsługują przekazywania dostępu, używanie właściwości
Nie opracowaliśmy jeszcze pełnej implementacji wszystkich istotnych parametrów. Jednak w przypadku wielu klientów, takich jak Apple iCal, protokół CalDAV powinien działać prawidłowo.
Uwaga: ze względu na bezpieczeństwo konta i aby zapobiegać nadużyciom, Google może umieszczać pliki cookie w aplikacjach klienckich, które uzyskują dostęp do danych przez CalDAV.
Tworzenie identyfikatora klienta
Aby korzystać z interfejsu CalDAV API, musisz mieć konto Google. Jeśli masz już konto, którego możesz używać, nie musisz nic więcej robić.
Zanim będzie można wysyłać żądania do interfejsu CalDAV API, musisz zarejestrować klienta w konsoli interfejsu API Google, tworząc projekt.
Otwórz konsolę interfejsów API Google. Kliknij Utwórz projekt, wpisz nazwę i kliknij Utwórz.
Następnym krokiem jest aktywowanie interfejsu CalDAV API.Aby włączyć interfejs API w projekcie, wykonaj te czynności:
- Otwórz bibliotekę interfejsów API w Konsoli interfejsów API Google. Jeśli pojawi się taka prośba, wybierz projekt lub utwórz nowy. Biblioteka interfejsów API zawiera wszystkie dostępne interfejsy API, pogrupowane według rodziny usług i popularności.
- Jeśli interfejsu API, który chcesz włączyć, nie ma na liście, użyj wyszukiwarki, aby go znaleźć.
- Wybierz interfejs API, który chcesz włączyć, a następnie kliknij przycisk Włącz.
- Jeśli pojawi się taka prośba, włącz płatności.
- Jeśli pojawi się taka prośba, zaakceptuj Warunki korzystania z interfejsu API.
Aby znaleźć identyfikator klienta i tajny klucz klienta dla swojego projektu:
- Wybierz istniejące dane logowania OAuth 2.0 lub otwórz stronę Dane logowania.
- Utwórz dane logowania OAuth 2.0 w swoim projekcie, klikając Utwórz dane logowania > Identyfikator klienta OAuth, i podaj informacje potrzebne do utworzenia tych danych.
- W sekcji Identyfikatory klienta OAuth 2.0 znajdź identyfikator klienta. Aby uzyskać szczegółowe informacje, kliknij identyfikator klienta.
Łączenie z serwerem Google CalDAV
Aby używać interfejsu CalDAV, program kliencki początkowo łączy się z serwerem kalendarza w jednym z dwóch punktów początkowych. W obu przypadkach należy nawiązywać połączenie przez HTTPS i korzystać ze schematu uwierzytelniania OAuth 2.0. Serwer CalDAV odmówi uwierzytelnienia żądania, jeśli nie otrzyma on protokołu HTTPS z uwierzytelnianiem OAuth 2.0 na koncie Google.
Próba nawiązania połączenia przez HTTP lub użycia uwierzytelniania podstawowego powoduje wygenerowanie kodu stanu HTTP 401 Unauthorized
.
Jeśli program kliencki (taki jak Apple iCal) jako punkt początkowy wymaga podmiotu zabezpieczeń, identyfikator URI, z którym należy się połączyć, to:
https://apidata.googleusercontent.com/caldav/v2/calid/user
Gdzie calid
należy zastąpić „identyfikatorem kalendarza” kalendarza, do którego chcesz uzyskać dostęp. Aby ją wyświetlić, w interfejsie internetowym Kalendarza Google: w menu obok nazwy kalendarza wybierz Ustawienia Kalendarza. Na stronie wyników pojawi się identyfikator kalendarza w sekcji Adres kalendarza. Identyfikator kalendarza głównego użytkownika jest taki sam jak adres e-mail tego użytkownika.
Jeśli program kliencki (np. Mozilla Sunbird) jako punkt początkowy wymaga kolekcji kalendarzy, identyfikator URI do połączenia to:
https://apidata.googleusercontent.com/caldav/v2/calid/events
Stary punkt końcowy https://www.google.com/calendar/dav został wycofany i nie jest już obsługiwany. Korzystasz z niego na własne ryzyko. Zalecamy przejście na nowy format punktów końcowych opisany powyżej.
iCal jest znakiem towarowym firmy Apple Inc.