Как проверить перенос календаря через ICS
Перенесите тестовые события, сравните время и повторения и подготовьте безопасный импорт в отдельный календарь.
Календарь кружка нужно перенести в другое приложение. Экспорт через ICS выглядит простым, пока не выясняется, что часть событий стала отображаться на час раньше или одна отменённая встреча снова появилась. Переход полезно проверять на маленьком наборе, который заранее содержит сложные случаи. Перенос событий и восстановление всех настроек календаря — разные задачи. В файле могут сохраниться основные записи, а общие права, приглашения и поведение уведомлений потребуют отдельной настройки.
Возьмём вымышленный календарь учебной группы. В нём есть однодневное занятие с конкретным временем, событие на весь день и серия встреч с одним исключением. Цель — получить те же даты и времена в новом календаре и узнать, какие поля не перенеслись, прежде чем загружать рабочий экспорт.
Соберите представительный набор событий
Создайте отдельный тестовый календарь и добавьте в него три записи. Первое событие назначьте на 18:30 с явно выбранным часовым поясом. Второе отметьте как событие на весь день, например «Сдать отчёт». Третье сделайте еженедельным. Затем измените время одного экземпляра в серии или отмените одну встречу, не меняя остальные. Используйте вымышленные названия и не приглашайте реальных людей на тест.
Запишите ожидаемые результаты на конкретных датах. Для повторяющегося события одной строки «все понедельники» мало. Отметьте обычную встречу, изменённую и ту, что идёт следом. Для события на весь день сверьте дату в целевой программе. Если вы работаете с участниками из разных часовых поясов, добавьте проверку отображения в одном из них. Отдельно выпишите поля, которые критичны для реальных материалов, например ссылку на занятие или описание.
Экспортируйте именно тестовый календарь
В Google Calendar экспорт можно выполнять через веб-версию на компьютере. Выберите нужный календарь и найдите действие экспорта в настройках. Возможность экспорта зависит от прав. Если интерфейс выгружает ZIP с несколькими файлами ICS, извлеките их в новый каталог и найдите нужный по имени календаря. Не импортируйте ZIP целиком, если целевое приложение ждёт файл с расширением .ics.
При переносе материалов организации проверьте, разрешено ли выгружать календарь в новое место. Даже учебный рабочий календарь может содержать имена, закрытые ссылки и описания встреч. Для упражнения достаточно вымышленных записей. Рабочий экспорт храните с теми же ограничениями доступа, что и сам календарь.
Посмотрите структуру без изменения файла
ICS — текстовый формат iCalendar. Его можно открыть в редакторе для проверки, не меняя содержимое. Внутри обычные события обозначаются блоками VEVENT. Поля DTSTART и DTEND связаны с началом и окончанием, а RRULE может задавать повторение. Это полезно для диагностики, если в целевом приложении пропало событие. Не стоит вручную подменять строки, чтобы исправить всё сразу. Стандарт различает даты, абсолютное время, локальное время и правила часовых поясов. Ошибка редактирования может изменить смысл события для других устройств.
Посмотрите, встречаются ли ожидаемые названия. Длинные строки в файле могут быть перенесены по правилам формата, а некоторые символы записаны с экранированием. Не рассчитывайте количество событий простым поиском слова из названия. Серии и исключения могут быть представлены иначе, чем список встреч на экране. Для приёмки важнее календарь после импорта.
Импортируйте в пустое место и сравните
В целевом приложении создайте отдельный календарь с понятным названием. Убедитесь, что выбираете его в окне импорта. Для Google Calendar последовательность действий описана в отдельной справке об импорте ICS. В другом приложении меню и доступные поля могут отличаться. Не повторяйте импорт в рабочий календарь, пока не ясно, как он обрабатывает дубли.
Откройте нужную неделю и сравните тестовые записи. У занятия должно совпадать фактическое время с учётом выбранного пояса. Событие на весь день должно стоять на правильной дате. У серии проверьте обычную встречу и исключение. Затем посмотрите описание, местоположение и ссылку, если они важны. В справке Google отдельно отмечено, что приглашённые участники и сведения о видеоконференции не импортируются. Для другого приложения сверьте поддерживаемые поля по его документации и своему тестовому набору.
Переносите рабочие данные после приёмки
Зафиксируйте, какие свойства прошли проверку и какие надо восстановить вручную. Если время отличается, сначала сравните настройки часовых поясов исходного и целевого приложения и тип события. Если пропало исключение серии, решите, подходит ли автоматический импорт или лучше перенести несколько таких записей вручную. После рабочего импорта снова проверьте ближайшую и одну более дальнюю неделю.
Упражнение закончено, когда все три тестовых сценария сопоставлены на конкретных датах, повторный импорт не требуется для угадывания результата, а известные ограничения записаны. Датированный экспорт оставьте отдельно как исходный артефакт. Так при необходимости можно повторить перенос с тем же файлом.
В тесте полезно отдельно открыть календарь на телефоне и в браузере. Проверьте одно событие в каждом представлении при одинаковом часовом поясе. Так вы заметите, если различие связано с отображением на конкретном устройстве. Запишите настройки, под которыми прошла проверка.