CalDAV to rozszerzenie WebDAV, które zapewnia klientom dostęp do informacji o kalendarzu na serwerze zdalnym.
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 z odpowiednich specyfikacji obsługa CalDAV w Google wygląda następująco:
- rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning
(WebDAV)
- Obsługuje metody HTTP
GET,PUT,HEAD,DELETE,POST,OPTIONS,PROPFINDiPROPPATCH. - Nie obsługuje metod HTTP
LOCK,UNLOCK,COPY,MOVEaniMKCOLani 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: Calendaring Extensions to WebDAV (CalDAV)
- Obsługuje metodę HTTP
REPORT. Wszystkie raporty oprócz zapytania o dostępność są zaimplementowane. - 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
VTODOaniVJOURNAL. - Nie obsługuje rozszerzenia Apple iCal®, które umożliwia użytkownikom ustawianie właściwości adresu URL.
- rfc6578: Collection Synchronization for WebDAV
- Aplikacje klienckie muszą przejść do tego trybu działania po pierwszej synchronizacji.
- 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: Calendar Collection Entity Tag (CTag) in CalDAV
- Kalendarz
ctagjest podobny do zasobuetag. Zmienia się, gdy w kalendarzu nastąpią jakiekolwiek zmiany. Dzięki temu aplikacja kliencka może szybko stwierdzić, że nie musi synchronizować żadnych zmienionych zdarzeń.
- Kalendarz
- calendar-proxy: Calendar User Proxy Functionality in CalDAV
- Aby zwiększyć wydajność synchronizacji kalendarza z urządzeń z iOS, które nie obsługują delegowania, użycie właściwości
calendar-proxy-read-forlubcalendar-proxy-write-forz ciągiem UserAgent systemu iOS zakończy się niepowodzeniem.
- Aby zwiększyć wydajność synchronizacji kalendarza z urządzeń z iOS, które nie obsługują delegowania, użycie właściwości
Nie wdrożyliśmy jeszcze w pełni wszystkich odpowiednich specyfikacji. W przypadku wielu klientów, np. aplikacji Kalendarz od Apple, protokół CalDAV powinien jednak działać prawidłowo.
Uwaga: ze względu na bezpieczeństwo konta i aby zapobiegać nadużyciom, Google może ustawiać pliki cookie w aplikacjach klienckich, które uzyskują dostęp do danych za pomocą 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ć.
Aby móc wysyłać żądania do interfejsu CalDAV API, musisz zarejestrować 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.
Następnym krokiem jest aktywacja interfejsu CalDAV API.Aby włączyć interfejs API w projekcie:
- Otwórz Bibliotekę interfejsów API w Konsoli interfejsów API Google. Jeśli pojawi się odpowiedni komunikat, wybierz projekt lub utwórz nowy. W Bibliotece interfejsów API znajdziesz 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 usługi API.
Aby znaleźć identyfikator 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 logowania OAuth 2.0 projektu, klikając Utwórz dane logowania > Identyfikator klienta OAuth i podając informacje potrzebne do utworzenia danych logowania.
- W sekcji Identyfikatory klienta OAuth 2.0 znajdź Identyfikator klienta. Aby uzyskać szczegółowe informacje, kliknij identyfikator klienta.
Łączenie z serwerem CalDAV Google
Aby korzystać z interfejsu CalDAV, program kliencki łączy się początkowo z serwerem kalendarza w jednym z 2 punktów początkowych. W obu przypadkach połączenie musi być nawiązywane przez HTTPS i musi korzystać ze schematu uwierzytelniania OAuth 2.0. Serwer CalDAV odmówi uwierzytelnienia żądania, chyba że zostanie ono przesłane przez HTTPS z uwierzytelnianiem OAuth 2.0 konta Google.
Próba połączenia przez HTTP lub użycie uwierzytelniania podstawowego powoduje zwrócenie kodu stanu HTTP401 Unauthorized.
Jeśli program kliencki (np. aplikacja Kalendarz od Apple) wymaga kolekcji głównej jako punktu początkowego, identyfikator URI do połączenia to:
https://apidata.googleusercontent.com/caldav/v2/calid/user
gdzie calid należy zastąpić „identyfikatorem kalendarza”, do którego chcesz uzyskać dostęp. Możesz to zrobić w interfejsie internetowym Kalendarza Google: w menu obok nazwy kalendarza wybierz Ustawienia kalendarza. Na stronie, która się otworzy, identyfikator kalendarza będzie widoczny w sekcji Adres kalendarza. Identyfikator kalendarza podstawowego użytkownika jest taki sam jak jego adres e-mail.
Jeśli program kliencki (np. Mozilla Sunbird) wymaga kolekcji kalendarzy 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. Korzystasz 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.