# Calendar CalDAV — Requirement Spec (Delta) > New capability: `calendar-caldav` > Change: `local-calendar-tasks` ## ADDED Requirements ### Requirement: REQ-CAL-001: Локальный CalDAV-сервер **MUST** — на bigbox должен работать CalDAV-сервер (Radicale), доступный по HTTP на 127.0.0.1:5232, предоставляющий календари и задачи по стандарту CalDAV. #### Scenario: Radicale отвечает **GIVEN** Radicale запущен **WHEN** выполняется `curl -i -X PROPFIND http://127.0.0.1:5232/ -u login:pass` **THEN** ответ содержит HTTP 207 (Multi-Status) и список коллекций. ### Requirement: REQ-CAL-002: Календарь и задачи через CalDAV **MUST** — Radicale должен поддерживать как календари (VEVENT), так и задачи (VTODO), чтобы Android-клиент (DAVx5) синхронизировал и календарь, и задачи. #### Scenario: Создание события **GIVEN** настроенный календарь пользователя **WHEN** клиент (DAVx5 на Android / curl) создаёт VEVENT через `PUT` **THEN** событие сохраняется в Radicale и доступно для чтения обратно. ### Requirement: REQ-CAL-003: Синхронизация с Android **MUST** — сервер должен поддерживать стандарт CalDAV (RFC 4791) для двусторонней синхронизации с Android через DAVx5 (или аналог). #### Scenario: Двусторонняя синхронизация **GIVEN** DAVx5 настроен на Android с URL Radicale **WHEN** создаётся событие на телефоне **THEN** оно появляется на bigbox (Radicale) и наоборот (событие из Radicale доступно на телефоне). ### Requirement: REQ-CAL-004: Безопасность **MUST** — Radicale доступен только локально (127.0.0.1) или через TLS-прокси (Caddy) с авторизацией; не должен быть открыт в интернет без TLS. #### Scenario: Доступ снаружи **GIVEN** Caddy reverse proxy настроен для Radicale **WHEN** Android подключается по https://<домен>/ **THEN** соединение TLS + аутентификация работают; без Caddy доступ ограничен локальным интерфейсом.