MAATRIX / Блог / Свой календарь через CalDAV: перенос событий и синхронизация устройств

Свой календарь через CalDAV: перенос событий и синхронизация устройств

MAATRIX · 17 октября 2026 · 8 мин чтения

Календарь становится полезным в тот момент, когда о нём можно не думать. Добавили встречу на компьютере — она появилась в телефоне. Перенесли время — напоминание изменилось. Купили новое устройство — история осталась. Собственный календарный сервер должен сохранить именно эту простоту, иначе контроль над инфраструктурой обойдётся слишком дорого в ежедневном внимании.

Для хранения и синхронизации подходит CalDAV. Лёгким серверным вариантом служит Radicale, а привычное отображение встреч остаётся в приложениях на компьютере и телефоне. Ниже — маршрут переноса существующего календаря с проверкой повторений, времени и доступа.

VPS для собственного календаря

Разместите Radicale на VPS MAATRIX и синхронизируйте календари между устройствами. Проверьте клиентов, права и резервную копию до переноса всей истории.

ВЫБРАТЬ VPS

Что делает сервер, а что делает приложение

Radicale хранит календарные коллекции и обслуживает обращения клиентов. Он не является полной заменой большого корпоративного календарного портала со всеми возможностями приглашений, переговорных и интеграций. Архитектура и ограничения описаны в документации проекта.

Перед установкой перечислите нужные функции. Личные события и синхронизация между устройствами — одна задача. Согласование встреч с внешними участниками, бронирование помещений и сложное управление организацией — другая. Если нужны последние возможности, оцените полноценную групповую систему и проверьте её сценарии отдельно.

Определите, какие календари должны быть личными, а какие общими. Рабочий, семейный и календарь дней рождения удобно хранить раздельно. Это позволяет включать нужные слои и управлять доступом без смешивания всех событий в одной коллекции.

Подготовьте выгрузку существующих событий

Экспортируйте календари в iCalendar, обычно это файлы .ics. Для Google Calendar порядок описан в официальной справке. Некоторые календари доступны только для чтения или принадлежат другому человеку, поэтому возможность их экспорта и переноса нужно проверить отдельно.

Сохраните исходные файлы без изменений. Запишите количество календарей и выберите контрольные события: обычная встреча, событие на весь день, повторение, исключение из повторения и встреча в другой часовой зоне. Если есть важные приглашения, отметьте организатора и список участников.

Не импортируйте сразу всю историю во все устройства. Сначала создайте одну тестовую коллекцию и проверьте небольшой набор. Повторный импорт в уже заполненный календарь может создать дубли, а удалять их по названиям неудобно: «Планёрка» имеет законное право существовать каждую неделю.

Если исходный календарь активно меняется, назначьте момент финальной выгрузки. После него новые события создаются только в новой системе либо переносятся по заранее согласованному правилу.

Подготовьте Radicale на VPS

Установите поддерживаемую версию Radicale выбранным способом и настройте запуск как службу. Сервер должен работать от отдельного пользователя, а его хранилище — находиться в постоянном каталоге с ограниченными правами.

Включите аутентификацию и создайте отдельные учётные записи. Для небольшого семейного сервера подходит защищённый файл паролей с поддерживаемым безопасным хешированием. Не храните пароли открытым текстом. Для личных коллекций используйте модель доступа владельца, а общие права настраивайте явно.

Оставьте внутренний порт доступным только локально и разместите перед ним обратный прокси с HTTPS. Если сервер работает под вложенным путём, настройте этот путь согласованно. Отдельный домен обычно проще для первого запуска, потому что уменьшает число особенностей обнаружения сервиса клиентами.

Создайте календарь через веб-интерфейс управления Radicale. Он предназначен для управления коллекциями; повседневное редактирование событий выполняйте в календарном клиенте. Сохраните адрес коллекции и проверьте вход обычной учётной записью.

Подключите сначала один компьютер

В клиенте с поддержкой CalDAV создайте сетевой календарь, укажите HTTPS-адрес сервера и учётные данные. Если автоматическое обнаружение не находит коллекцию, используйте её точный адрес и проверьте настройки прокси.

Создайте тестовое событие на компьютере. Обновите подключение и убедитесь, что оно сохранилось на сервере. Затем измените название и время. Пока этот цикл не работает, импорт истории только усложнит диагностику.

Импортируйте .ics в выбранный новый календарь через поддерживающий импорт клиент. Внимательно проверьте назначение: файл легко загрузить в локальный календарь компьютера, который вообще не синхронизируется с VPS. После импорта откройте тот же календарь на втором устройстве — это подтвердит, где действительно оказались события.

Проверьте контрольные примеры и не подключайте сразу все старые календари с теми же названиями. Временно задайте новым коллекциям отличительные цвета, чтобы видеть источник события и избежать случайного редактирования прежней копии.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

АРЕНДОВАТЬ СЕРВЕР

Телефон: iPhone и Android

На iPhone добавьте учётную запись CalDAV в настройках календаря и укажите сервер с учётными данными. Актуальный путь в интерфейсе описан в руководстве Apple. Затем выберите календарь по умолчанию для новых событий.

Для Android можно использовать DAVx⁵ как компонент синхронизации и совместимое календарное приложение. В документации DAVx⁵ есть особенности подключения Radicale. После добавления аккаунта выберите нужные коллекции и разрешите требуемую фоновую синхронизацию.

Проверьте создание события именно с телефона. Оно должно появиться на компьютере и принадлежать серверной коллекции. Телефон может по привычке сохранять новое событие в локальный календарь или прежний облачный аккаунт, даже если новые события с сервера он уже показывает.

Синхронизация не всегда мгновенная. Измерьте обычную задержку и проверьте поведение при выключенном экране. Ограничения фоновой работы устройства влияют на обновление независимо от мощности VPS.

Повторения и часовые пояса

Откройте еженедельное событие и проверьте несколько будущих дат. Затем найдите исключение: перенесённую или отменённую встречу внутри серии. Если исключение потерялось, календарь начнёт показывать событие, которого уже не должно быть.

Событие на весь день должно оставаться на нужной дате. Встреча с конкретным временем должна корректно отображаться при смене часового пояса устройства. Для поездок особенно важно понять, задано ли время относительно места встречи или как фиксированный момент.

Не исправляйте массово все события сдвигом на несколько часов, пока не выяснили источник проблемы. Ошибка может относиться к одной серии, импорту или настройке клиента. Сохраните исходный .ics контрольного события и сравните результат на двух клиентах.

Приглашения проверяйте отдельно от обычной синхронизации. Наличие списка участников в событии не гарантирует, что новый сервер отправляет приглашения и обрабатывает ответы так же, как прежняя система. Для важной командной работы выполните реальную безопасную проверку с двумя тестовыми адресами.

Общий доступ и потерянный телефон

Выдавайте доступ отдельным аккаунтам, а не общим семейным паролем. Тогда потерянное устройство или смена участника не потребует менять настройки у всех. Для общего календаря заранее определите, кто может читать, создавать и удалять события.

Проверьте ограничения вторым пользователем. Личный календарь не должен обнаруживаться и читаться без разрешения. Для общего календаря проверьте запрет редактирования, если участнику нужен только просмотр.

После смены пароля убедитесь, что старые учётные данные перестали работать. На устройствах обновите доступ и проверьте отсутствие бесконечных ошибок синхронизации. Журнал сервера поможет увидеть, какой клиент продолжает обращаться со старым паролем.

Не публикуйте секретную ссылку подписки как обычную ссылку на сайт. В некоторых схемах знание такого адреса само даёт доступ к содержимому. Используйте подходящие права и меняйте скомпрометированный доступ предусмотренным способом.

Проверка перед поездкой без связи

Откройте календарь на телефоне, дождитесь синхронизации и включите режим полёта. Убедитесь, что ближайшие события доступны, затем создайте безопасную тестовую запись. После возвращения сети проверьте её появление на компьютере. Повторите изменение времени и удаление этой записи. Так станет понятно, какие операции клиент сохраняет локально и как передаёт их позже. Для важной поездки полезно заранее открыть нужный период и проверить вложенные сведения, если клиент их поддерживает. Отсутствие интернета не должно неожиданно обнаружить, что устройство показывало лишь часть календаря, а остальное ожидало загрузки.

Резервная копия и спокойная эксплуатация

Синхронизация распространяет и полезные изменения, и случайное удаление. Поэтому сохраняйте независимую копию хранилища и конфигурации. Проверьте восстановление в отдельный экземпляр, затем откройте контрольную серию событий.

Регулярный экспорт важных календарей в .ics может служить дополнительным переносимым архивом, но не заменяет полный план восстановления сервера. Храните копии отдельно от VPS и ограничивайте доступ: расписание способно рассказать о человеке больше, чем кажется.

Для личного или семейного пилота Radicale можно рассматривать MAATRIX Ba Lite с 1 vCPU и 2 ГБ памяти. Календарные данные обычно невелики; важнее стабильная настройка, резервные копии и совместимость клиентов. Если на сервере работают другие приложения, ресурсы рассчитывайте для всей системы.

Выберите поддерживаемую Ubuntu или Debian и настройте обновления. VPS MAATRIX даст постоянную площадку для календаря. Когда новая встреча с телефона появляется на компьютере, повторения сохраняют смысл, а восстановление проверено, сервер начинает выполнять свою лучшую роль — спокойно работать в фоне.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

АРЕНДОВАТЬ СЕРВЕР

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →