CalDAV to rozszerzenie WebDAV, które zapewnia klientom standard dostępu do informacji z kalendarza na serwerze zdalnym.
Google udostępnia interfejs CalDAV, który umożliwia wyświetlanie kalendarzy i zarządzanie nimi przy użyciu protokołu CalDAV.
Specyfikacja
W przypadku każdej z tych specyfikacji obsługa protokołu CalDAV Google jest następująca:
- rfc4918: rozszerzenia HTTP do tworzenia i obsługi wersji w sieci rozproszonej
(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: Calendaring Extensions to WebDAV (CalDAV)
- Obsługuje metodę HTTP
REPORT
. implementowane są wszystkie raporty z wyjątkiem zapytania o stanie Wolny/Zajęty. - Nie obsługuje metody HTTP
MKCALENDAR
. - Nie obsługuje czynności
AUDIO
.
- Obsługuje metodę HTTP
- rfc5545: iKalendarz
- Dane udostępniane w interfejsie CalDAV są formatowane zgodnie ze specyfikacją iKalendarza.
- Obecnie nie obsługuje danych
VTODO
aniVJOURNAL
. - Rozszerzenie Apple iCal® nie obsługuje właściwości adresów URL możliwych do ustawienia przez użytkownika.
- rfc6578: Collection Synchronization for WebDAV
- Aplikacje klienckie muszą przełączyć się na ten tryb działania po początkowej synchronizacji.
- rfc6638: planowanie rozszerzeń do CalDAV
- Obsługuje prostą „skrzynkę odbiorczą”, która zawsze jest pusta.
- Zaproszenia, które otrzymasz, będą dostarczane automatycznie do kolekcji „wydarzenia”, a nie do „skrzynki odbiorczej”.
- Wyszukiwanie informacji o stanie Wolny/Zajęty nie jest obsługiwane.
- caldav-ctag-02: tag CTag (CTag) kalendarza w CalDAV
- Kalendarz
ctag
jest jak zasóbetag
i zmienia się, gdy cokolwiek w kalendarzu się zmienia. Dzięki temu aplikacja kliencka może szybko stwierdzić, że nie musi synchronizować żadnych zmienionych zdarzeń.
- Kalendarz
- calendar-proxy: Funkcje serwera proxy użytkowników Kalendarza w CalDAV
- Aby poprawić wydajność synchronizacji kalendarza na urządzeniach z iOS, które nie obsługują przekazywania dostępu, użycie właściwości
calendar-proxy-read-for
lubcalendar-proxy-write-for
z klientem użytkownika iOS zakończy się niepowodzeniem.
- Aby poprawić wydajność synchronizacji kalendarza na urządzeniach z iOS, które nie obsługują przekazywania dostępu, użycie właściwości
Nie udostępniliśmy jeszcze pełnej implementacji wszystkich odpowiednich specyfikacji. Jednak w przypadku wielu klientów, takich jak aplikacja Kalendarz Apple, protokół CalDAV powinien współdziałać prawidłowo.
Uwaga: ze względu na bezpieczeństwo konta i zapobieganie nadużyciom Google może umieszczać pliki cookie w aplikacjach klienckich, które uzyskują dostęp do danych przez CalDAV.
Tworzę identyfikator klienta
Aby korzystać z interfejsu CalDAV API, musisz mieć konto Google. Jeśli masz już konto, z którego możesz korzystać, nie musisz nic robić.
Zanim zaczniesz wysyłać żądania do interfejsu CalDAV API, musisz zarejestrować klienta w Konsoli interfejsów API Google przez utworzenie projektu.
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ę API w konsoli interfejsów API Google. Jeśli pojawi się taka prośba, wybierz projekt lub utwórz nowy. Zawiera ona 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, wyszukaj go za pomocą wyszukiwarki.
- Wybierz interfejs API, który chcesz włączyć, a następnie kliknij przycisk Włącz.
- Włącz płatności, jeśli pojawi się taka prośba.
- Jeśli pojawi się taka prośba, zaakceptuj Warunki korzystania z usługi API.
Aby znaleźć identyfikator i tajny klucz klienta projektu, wykonaj te czynności:
- Wybierz istniejące dane logowania OAuth 2.0 lub otwórz stronę Dane logowania.
- Utwórz dane logowania OAuth 2.0 projektu, klikając Utwórz dane logowania > Identyfikator klienta OAuth, i podaj informacje potrzebne do utworzenia danych logowania.
- Odszukaj Identyfikator klienta w sekcji Identyfikatory klienta OAuth 2.0. Aby wyświetlić szczegółowe informacje, kliknij identyfikator klienta.
Łączenie z serwerem CalDAV Google
Aby można było 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 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 za pomocą protokołu HTTPS z uwierzytelnianiem OAuth 2.0 konta Google.
Próba połączenia przez HTTP lub użycie uwierzytelniania podstawowego zwraca kod stanu HTTP 401 Unauthorized
.
Jeśli program kliencki (np. aplikacja Kalendarz firmy Apple) wymaga jako punktu początkowego zbierania danych przez podmiot zabezpieczeń, identyfikator URI, z którym ma zostać nawiązane połączenie, 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. Ten interfejs jest dostępny w interfejsie internetowym Kalendarza Google w następujący sposób: w menu obok nazwy kalendarza wybierz Ustawienia kalendarza. Na stronie wynikowej 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 kliencki (taki jak Mozilla Sunbird) wymaga zbierania danych z kalendarza jako punktu początkowego, identyfikator URI, z którym ma zostać nawiązane połączenie:
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. Używaj go na własne ryzyko. Zalecamy przejście na nowy format punktów końcowych opisany powyżej.
iCal® jest znakiem towarowym firmy Apple Inc.