CalDAV to rozszerzenie WebDAV, które zapewnia klientom dostęp do informacji o kalendarzu na serwerze zdalnym.
Google udostępnia interfejs CalDAV, który umożliwia wyświetlanie kalendarzy i zarządzanie nimi za pomocą protokołu CalDAV.
Specyfikacja
W przypadku każdej z odpowiednich specyfikacji obsługa CalDAV przez Google wygląda tak:
- rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning
(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: Rozszerzenia kalendarza do WebDAV (CalDAV)
- Obsługuje metodę HTTP
REPORT
. Wdrożone są wszystkie raporty oprócz zapytania o dostępność. - Nie obsługuje metody HTTP
MKCALENDAR
. - Nie obsługuje działania
AUDIO
.
- Obsługuje metodę HTTP
- rfc5545: iCalendar
- Dane udostępniane w interfejsie CalDAV są sformatowane zgodnie ze specyfikacją iCalendar.
- Obecnie nie obsługuje danych
VTODO
aniVJOURNAL
. - Nie obsługuje rozszerzenia iCal® firmy Apple, które umożliwia użytkownikom ustawianie właściwości adresu URL.
- rfc6578: synchronizacja kolekcji w usłudze WebDAV
- Po początkowej synchronizacji aplikacje klienckie muszą przejść w ten tryb działania.
- rfc6638: Scheduling Extensions to CalDAV
- Obsługuje prostą „skrzynkę odbiorczą”, która jest zawsze pusta.
- Otrzymane zaproszenia są automatycznie dostarczane do kolekcji „wydarzenia”, a nie do „skrzynki odbiorczej”.
- Nie obsługuje wyszukiwania informacji o dostępności.
- caldav-ctag-02: tag elementu kolekcji kalendarza (CTag) w CalDAV
- Kalendarz
ctag
jest jak zasóbetag
: zmienia się, gdy zmieni się cokolwiek w kalendarzu. Dzięki temu aplikacja kliencka może szybko ustalić, że nie musi synchronizować żadnych zmienionych zdarzeń.
- Kalendarz
- calendar-proxy: funkcja proxy użytkownika w CalDAV
- Aby zwiększyć wydajność synchronizacji kalendarza na urządzeniach z iOS, które nie obsługują delegowania, nie należy używać właściwości
calendar-proxy-read-for
anicalendar-proxy-write-for
z wartością iOS UserAgent.
- Aby zwiększyć wydajność synchronizacji kalendarza na urządzeniach z iOS, które nie obsługują delegowania, nie należy używać właściwości
Nie wprowadziliśmy jeszcze wszystkich odpowiednich specyfikacji. Jednak w przypadku wielu klientów, takich jak aplikacja Kalendarz Apple, protokół CalDAV powinien działać prawidłowo.
Uwaga: ze względu na bezpieczeństwo konta i aby zapobiec nadużyciom Google może zapisywać pliki cookie w aplikacji klienta, która uzyskuje dostęp do danych za pomocą protokołu 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ć, to wszystko.
Zanim zaczniesz wysyłać żądania do interfejsu CalDAV API, musisz zarejestrować swojego klienta w Konsoli interfejsów API Google, tworząc projekt.
Otwórz konsolę interfejsów API Google. Kliknij Utwórz projekt, wpisz nazwę i kliknij Utwórz.
Kolejnym krokiem jest aktywowanie interfejsu CalDAV API.Aby włączyć interfejs API w projekcie, wykonaj te czynności:
- Otwórz Bibliotekę 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 listę wszystkich dostępnych interfejsów API, pogrupowanych według rodziny produktów i popularności.
- Jeśli interfejs API, który chcesz włączyć, nie jest widoczny na liście, znajdź go za pomocą wyszukiwarki.
- 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 usługi interfejsu API.
Aby znaleźć identyfikator klienta i tajny klucz klienta projektu:
- Wybierz istniejące dane logowania OAuth 2.0 lub otwórz stronę Dane logowania.
- Jeśli jeszcze tego nie zrobiono, utwórz dane uwierzytelniające OAuth 2.0 projektu, klikając Utwórz dane uwierzytelniające > Identyfikator klienta OAuth i podając informacje potrzebne do utworzenia danych uwierzytelniających.
- W sekcji Identyfikatory klienta OAuth 2.0 odszukaj Identyfikator klienta. Aby uzyskać szczegółowe informacje, kliknij identyfikator klienta.
Łączenie z serwerem CalDAV Google
Aby korzystać z interfejsu CalDAV, program klienta łączy się początkowo z serwerem kalendarza w jednym z dwóch punktów początkowych. W obu przypadkach połączenie musi być nawiązywane przez HTTPS i wykorzystywać schemat uwierzytelniania OAuth 2.0. Serwer CalDAV odmówi uwierzytelnienia żądania, chyba że zostanie ono przesłane przez HTTPS z uwierzytelnieniem OAuth 2.0 konta Google.
Próba połączenia przez HTTP lub użycie uwierzytelniania podstawowego powoduje kod stanu HTTP 401 Unauthorized
.
Jeśli program kliencki (np. aplikacja Kalendarz firmy Apple) wymaga, aby punktem wyjścia była główna kolekcja, identyfikator URI do połączenia to:
https://apidata.googleusercontent.com/caldav/v2/calid/user
Gdzie calid
należy zastąpić identyfikatorem „calendar ID” kalendarza, do którego chcesz uzyskać dostęp. Aby znaleźć te informacje w interfejsie internetowym Kalendarza Google, wykonaj te czynności: w menu rozwijanym obok nazwy kalendarza kliknij Ustawienia Kalendarza. Na stronie, która się otworzy, identyfikator kalendarza będzie widoczny w sekcji Adres kalendarza. Identyfikator kalendarza głównego użytkownika jest taki sam jak jego adres e-mail.
Jeśli program klienta (np. Mozilla Sunbird) wymaga zbioru kalendarza jako punktu wyjścia, 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. Korzystaj z niego na własne ryzyko. Zalecamy przejście na nowy format punktu końcowego opisany powyżej.
iCal® jest znakiem towarowym firmy Apple Inc.