Календарь в Apple Calendar, Outlook и CalDAV
Актуально для: SimpleTwo 0.9.x · Проверено: 07.09.2026
Календарь платформы читается не только нашим приложением: подписанный Outlook обновляет подписку по своему расписанию, CalDAV-клиент опрашивает сервер сам. Именно поэтому служба календаря стоит рядом с чатом, а не внутри него, и именно поэтому у неё публичное имя.
Три способа подключить сторонний клиент, от простого к полному:
| Способ | Что даёт | Направление | Кому |
|---|---|---|---|
| ICS-подписка | календарь виден в любом клиенте, понимающем webcal:// | только чтение | Apple Calendar, Outlook, Google Calendar, экран в переговорной |
| CalDAV | учётная запись календаря целиком: список календарей, события, свободно/занято | чтение (запись — по мере готовности, см. ниже) | Apple Calendar на macOS/iOS, Thunderbird, любой CalDAV-клиент |
| CardDAV | корпоративный каталог как адресная книга | только чтение | те же клиенты, отдельная настройка |
1. ICS-подписка — самый короткий путь
Подписка выдаётся на конкретный календарь и содержит секрет в самой ссылке. Секрет показывается один раз: ротация выдаёт новую ссылку и обесценивает прежнюю.
Получить ссылку:
curl -fsS -X POST "https://cal.s2.<домен>/v1/calendars/<id>/subscriptions" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{"label":"Мой ноутбук"}'
В ответе две ссылки на один и тот же ресурс:
{
"calendar_id": "cal-…",
"url": "https://cal.s2.<домен>/v1/calendars/cal-…/subscribe.ics?key=…",
"webcal_url": "webcal://cal.s2.<домен>/v1/calendars/cal-…/subscribe.ics?key=…",
"note": "shown once — rotating replaces it"
}
Разница между ними практическая: https:// клиент скачает как файл, а webcal://
воспримет как подписку и будет обновлять. Apple Calendar и Outlook ждут именно второй.
В ней нет пароля и нет вашей сессии: кто получил ссылку, тот видит календарь. Поэтому
выдавайте по одной на устройство с понятной меткой — так отзыв не ломает остальные, — и не
кладите её в общий чат. Отозвать: DELETE /v1/credentials/{id}.
Apple Calendar (macOS). Файл → Новая подписка на календарь → вставить webcal://… →
частота обновления 15 минут. Оповещения от подписки лучше выключить: они дублируют
напоминания, которые уже приходят пушем в SimpleTwo Connect.
Apple Calendar (iOS). Настройки → Приложения → Календарь → Учётные записи → Добавить → Другое → Подписной календарь → вставить ссылку.
Outlook (новый и веб). Календарь → Добавить календарь → Подписаться из интернета →
вставить https://…-вариант.
Экран в переговорной. У календаря-ресурса та же выдача возвращает ещё и адрес панели
(now_url): панель на стене — не подписчик, она спрашивает «что здесь сейчас». Один
секрет открывает и подписку, и панель.
2. CalDAV — учётная запись, а не один календарь
CalDAV даёт клиенту всё сразу: список календарей, события, свободно/занято. Обнаружение работает штатно, поэтому в клиенте достаточ но ввести имя сервера и учётные данные.
| Что | Значение |
|---|---|
| Сервер | cal.s2.<домен> |
| Адрес обнаружения | https://cal.s2.<домен>/.well-known/caldav |
| Корень | https://cal.s2.<домен>/dav/ |
| Пользователь | рабочий адрес, тот же, с которым вы входите в SimpleTwo |
| Пароль | пароль приложения из POST /v1/credentials (сессионный токен здесь не подходит) |
Apple Calendar (macOS). Настройки → Учётные записи → добавить CalDAV → тип «Вручную» →
имя пользователя, пароль приложения, сервер cal.s2.<домен>.
Статус: чтение. Обнаружение, PROPFIND, GET и отчёты (в том числе
calendar-query и sync-collection) работают; запись со стороны CalDAV-клиента включается
по мере готовности — до этого созданное в сторонней программе событие в платформу не
уедет. Проверить, что включено в вашей установке, можно в консоли: карточка календаря
показывает состояние CalDAV для тенанта.
Потому что у половины сотрудников календарь уже открыт в другой программе, и просить их смотреть расписание в двух местах — верный способ получить расписание, которое никто не ведёт. Сервер отдаёт то же, что видит наш клиент, с теми же правами.
3. CardDAV — каталог как адресная книга
Корпоративный каталог отдаётся по CardDAV, поэтому в телефоне у сотрудника коллеги находятся штатным поиском по контактам, включая набор номера.
| Что | Значение |
|---|---|
| Адрес обнаружения | https://s2.<домен>/.well-known/carddav |
| Пользователь | рабочий адрес |
| Пароль | пароль приложения (там же, где для CalDAV) |
Каталог доступен только на чтение — это копия того, чем управляет ваш AD/LDAP, и исправлять запись сотрудника надо там, где она заведена.
Что делать, когда не работает
| Симптом | Причина |
|---|---|
| Клиент скачал один файл и больше не обновляет | взяли https://-ссылку вместо webcal:// |
| Подписка пустая | у ссылки уровень доступа, при котором календарь виден без содержимого, либо в календаре действительно нет записей в окне подписки |
| CalDAV не логинится с рабочим паролем | пароль домена здесь не подходит: нужен пароль приложения из POST /v1/credentials |
| Событие, созданное в Apple Calendar, не появилось в SimpleTwo | запись со стороны CalDAV в этой установке ещё не включена — см. §2 |
| Ссылка перестала работать после ротации | так и задумано: ротация обесценивает прежний секрет, выдайте новую подписку |
| Клиент не находит сервер по имени | не отвечает /.well-known/caldav: проверьте, что имя cal.s2.<домен> заведено в DNS и у службы есть сертификат |