Модул 5 · 5.1
CalDAV и CardDAV: как се синхронизират календар и контакти
Модул 5: Календар и контакти · Време за четене: 10 минути
Учебна цел: След този урок ще можете да обясните как CalDAV и CardDAV поддържат Вашия календар и контакти синхронизирани между сървъра и устройствата, защо забелязвате това едва когато настроите приложение, и какви данни са Ви нужни, за да свържете приложение.
Основни понятия: CalDAV, CardDAV, WebDAV, синхронизиране, адрес на сървъра, .well-known/caldav, .well-known/carddav, principal, парола за приложение, Exchange ActiveSync, стандартен календар
Календарът и контактите живеят на сървър
При Google и Microsoft не забелязвате как календарът Ви се появява на телефона. Влизате с акаунта си и календарът и контактите вече са там. Зад кулисите за това често се използва собствен метод за синхронизация: Microsoft използва Exchange ActiveSync и собствени връзки, Google има собствена синхронизация на акаунти в Android.
При европейски доставчик това почти винаги става чрез два отворени стандарта:
- CalDAV (RFC 4791) за календари и списъци със задачи;
- CardDAV (RFC 6352) за контакти.
И двата се базират на WebDAV, разширение на обикновения уеб трафик (HTTPS), с което можете да четете и записвате файлове на сървър. За CalDAV една среща е малък файл във формат iCalendar (урок 5.2), а контакт е малък файл във формат vCard. Сървърът съхранява тези файлове в папка за всеки календар или адресна книга. Телефонът Ви, лаптопът Ви и уеб календарът питат на всеки няколко минути: "какво се е променило от последния път?" и изтеглят само промените.
iPhone <--CalDAV/HTTPS--> server: /calendars/anne/werk/ <--CalDAV--> laptop (Thunderbird)
^
|
webagenda in de browserГолямото предимство на отворения стандарт: не сте обвързани с едно единствено приложение. Приложението за календар на Вашия iPhone, DAVx5 на Android, Thunderbird, приложението Calendar на Mac и много други приложения говорят CalDAV. Ако по-късно отново преминете към друг доставчик, който също поддържа CalDAV, просто настройвате отново същите приложения.
Защо не го виждате, докато не настроите приложение
След прехвърлянето на Вашия календар (урок 5.2 и 5.3) всичко е подредено в уеб календара на новата Ви услуга. Телефонът Ви все още не знае нищо за това. Няма приложение, което автоматично да се появи: трябва да добавите акаунт на всяко устройство. За това са Ви нужни три неща:
| Данни | Пример при Bakkerij De Korrel |
|---|---|
| Адресът на сървъра | https://cloud.example.com или пълният DAV адрес, като https://cloud.example.com/remote.php/dav |
| Потребителското име | anne |
| Парола | парола за приложение, вижте по-долу |
Адресът на сървъра и .well-known
Всяка услуга има свой собствен път, на който се намират CalDAV и CardDAV. При Nextcloud това е /remote.php/dav, при други сървъри е нещо различно. За да не се налага всеки да знае този път, има установен ред (RFC 6764): приложение, което получава само името на домейна, първо проверява на фиксирано място:
https://cloud.example.com/.well-known/caldav
https://cloud.example.com/.well-known/carddavСървърът отговаря там с пренасочване към истинския път. Ако това пренасочване работи добре, във Вашия iPhone трябва да въведете само cloud.example.com. Ако не работи, приложението съобщава "не може да се потвърди акаунтът" и трябва да въведете пълния адрес. Същото RFC описва и SRV записи (_caldavs._tcp.example.com), с които приложение може да открие сървъра въз основа на домейна на Вашия имейл. Не всяко приложение използва това.
След това приложението пита сървъра за Вашия principal: фиксираното място на Вашия акаунт на сървъра, със списъка на Вашите календари и адресни книги. Така приложението автоматично открива всички календари, включително тези, споделени с Вас.
Защо Ви е нужна парола за приложение
Повечето европейски облачни услуги изискват при влизане в браузъра втора стъпка: код по имейл, приложение за удостоверяване или passkey. Приложение за календар на телефона Ви не може да изпълни тази втора стъпка. То разполага само с поле за потребителско име и парола.
Затова за такова приложение създавате парола за приложение: дълга, произволна парола, валидна само за това конкретно приложение. Създавате я в настройките за сигурност на Вашия облак, давате ѝ разпознаваемо име ("Календар iPhone Anne") и я въвеждате в приложението.
Предимства:
- Истинската Ви парола не се съхранява на телефона.
- Ако изгубите телефона си, отменяте само тази конкретна парола за приложение; останалите продължават да работят.
- Ако смените обикновената си парола, приложенията Ви продължават да работят.
Някои приложения могат да влизат и през браузъра: те отварят екрана за вход на Вашия облак, Вие извършвате там втората стъпка, и приложението автоматично получава парола за приложение. DAVx5 на Android например може да прави това с Nextcloud.
Най-известното съобщение за грешка при приложения за календар е 401 Unauthorized. Почти винаги това означава: използвали сте обикновената си парола вместо парола за приложение, или паролата за приложение е била отменена.
Календари от Exchange и какво губите
Който идва от Microsoft 365, е свикнал с някои неща, които при CalDAV работят различно или изобщо не работят:
- Виждане на свободно/заето време на колеги при планиране. Nextcloud и други CalDAV сървъри имат собствена форма (наличност в рамките на същия сървър), но тя не работи между различни услуги и не винаги във всяко приложение.
- Резервиране на помещения и устройства (заседателна зала, прожекционен апарат). Някои сървъри имат ресурсни календари, други не.
- Делегиран достъп ("секретарката управлява календара на директора"). При CalDAV това се урежда чрез споделяне с права за редактиране.
Поставете това на списъка си (модул 3). Рядко е причина да не преминете, но колегите трябва да бъдат уведомени предварително.
На практика: ето как изглежда при доставчик
В WebOké Nextcloud ще намерите адресите в приложението Calendar, долу вляво при Настройки на календара: CalDAV URL и Server adres за iOS и macOS, всеки с бутон за копиране. Общият адрес е https://<вашия-адрес>/remote.php/dav. Парола за приложение създавате при Настройки, Security, Devices & sessions. Там по-късно виждате и кое устройство кога за последно е имало връзка, и отменяте парола за приложение. Други доставчици на Nextcloud работят по съвсем същия начин; при други европейски услуги (например mailbox.org, Posteo или среда с Open-Xchange) CalDAV адресът се намира в помощните страници или настройките, а паролите за приложения понякога се наричат "парола за устройство" или "парола за приложение".
Обобщение
- CalDAV (календар, задачи) и CardDAV (контакти) са отворени стандарти върху WebDAV и HTTPS; всяка промяна е малък файл на сървъра.
- На всяко устройство трябва сами да добавите акаунт: адрес на сървъра, потребителско име и парола за приложение.
- Чрез
.well-known/caldavи.well-known/carddavприложението открива истинския път само въз основа на името на домейна; ако това не работи, въведете пълния DAV адрес. - Парола за приложение е необходима, защото приложенията за календар не могат да изпълнят втора стъпка за вход; съобщение 401 почти винаги означава грешна парола.
- Функции на Exchange като свободно/заето между колеги, резервиране на помещения и делегиране работят различно; поставете ги на списъка си.
Тест
Задача
Задача A5.1: Открива ли дадено приложение Вашия календар? Въведете адреса на Вашия (нов) облак, например cloud.example.com. Програмата проверява дали /.well-known/caldav и /.well-known/carddav пренасочват правилно към DAV път, и дали сървърът там отговаря като DAV сървър. Така ще разберете дали на телефон можете да въведете само името на домейна.
Прочетете още
Стъпките в тези статии важат за услугите на WebOké; при други доставчици работи по сходен начин.
- Nextcloud наръчник 3.5: App-пароли: кога и как
- Nextcloud наръчник 9.9: Събития и контакти на iPhone и iPad
- Nextcloud наръчник 9.10: Agenda и контакти на Android с DAVx5
- Nextcloud наръчник 15.6: Събитията или контактите не се появяват на телефона
- Създаване на парола за приложение (нужна за свързване с приложения и устройства)
- RFC 4791 (CalDAV), RFC 6352 (CardDAV), RFC 4918 (WebDAV), RFC 6764 (.well-known и SRV за CalDAV и CardDAV)
