Встреча сдвинулась на час? Проверьте часовую зону в файле .ics
Две повторяющиеся встречи могут начинаться в один момент, а после перевода часов разойтись. Проверьте, привязана ли серия к местному времени города или UTC, и сравните конкретные даты. Одна экспортированная встреча не раскрывает всё правило.
Начните со встречи, которая сдвинулась
Еженедельный звонок 23 октября 2026 года стоит на 15:00 по Амстердаму. Через неделю календарь показывает 14:00. Прежде чем переносить его вручную, выясните, что должно сохраняться: 15:00 в Амстердаме, 09:00 в Нью-Йорке или постоянное время UTC. Это разные расписания.
Разберём две вымышленные серии с одинаковым первым моментом начала. Это проверка еженедельных встреч с указанным временем: загружать куда-либо календарь или личное приглашение не требуется.
Почему три пятницы отличаются
В Нидерландах часы переводят назад 25 октября 2026 года, с 03:00 на 02:00. В Нью-Йорке — 1 ноября, с 02:00 на 01:00. Переходы приходятся на разные выходные.
23 октября Амстердам живёт по UTC+02:00, а Нью-Йорк — по UTC−04:00. 30 октября это UTC+01:00 и UTC−04:00; 6 ноября — UTC+01:00 и UTC−05:00. Разница составляет сначала шесть, затем пять, затем снова шесть часов. Таблица относится именно к этим городам и датам: переносить её на любую страну или год нельзя.
Два правила, одна первая встреча
В файле iCalendar строка DTSTART задаёт начало. Параметр TZID ссылается на описание часовой зоны, а Z в конце означает UTC. Правило ниже задаёт три еженедельных начала, включая первое. Это поясняющие фрагменты, а не готовые файлы для импорта. Для варианта A предполагается корректное описание Europe/Amsterdam на эти даты.
A: сохранять 15:00 в Амстердаме
text
DTSTART;TZID=Europe/Amsterdam:20261023T150000
RRULE:FREQ=WEEKLY;COUNT=3Местное время остаётся равным 15:00. Соответствующее время UTC может меняться.
B: сохранять 13:00 UTC
text
DTSTART:20261023T130000Z
RRULE:FREQ=WEEKLY;COUNT=3Время UTC остаётся равным 13:00. Соответствующее время в Амстердаме может меняться.
Сравните получившиеся начала
В каждой строке указаны Амстердам / Нью-Йорк / UTC. Все три времени в строке обозначают один момент в указанную дату. Примеры рассчитаны в Coru с помощью Python zoneinfo; даты переходов 2026 года сверены с официальными источниками.
- A, 23 октября: 15:00 / 09:00 / 13:00.
- A, 30 октября: 15:00 / 10:00 / 14:00.
- A, 6 ноября: 15:00 / 09:00 / 14:00.
- B, 23 октября: 15:00 / 09:00 / 13:00.
- B, 30 октября: 14:00 / 09:00 / 13:00.
- B, 6 ноября: 14:00 / 08:00 / 13:00.

Прочитайте копию, не меняя её
Если у вас уже есть приглашение или экспорт в формате .ics, откройте копию через команду «Открыть» обычного текстового редактора. Двойной щелчок по файлу может вместо этого запустить импорт в календарь. Сохраните оригинал и проверяйте файл на своём устройстве.
- Найдите нужное событие между BEGIN:VEVENT и END:VEVENT по названию (SUMMARY) и идентификатору (UID). В одном файле может быть несколько событий.
- Внутри этого события посмотрите DTSTART и RRULE. Строка DTSTART внутри VTIMEZONE описывает переход часовой зоны, а не вашу встречу.
- DTSTART с датой и временем, но без TZID и конечной Z задаёт «плавающее» время: оно не обозначает общий момент для разных часовых зон. События на весь день, где указана только дата, здесь не рассматриваются.
- Если RRULE отсутствует, остановите это сравнение. Экспорт может содержать отдельную встречу или набор отдельных записей. Одна строка начала в UTC не доказывает, как повторяется исходная серия.
Проверьте серию целиком и зону отображения
В реальной серии RDATE может добавлять даты, EXDATE — исключать их, а отдельное событие с RECURRENCE-ID — изменять конкретную встречу. Такие исключения меняют результат. Описания зон могут иметь другие имена, не только Europe/Amsterdam: не угадывайте их смысл и не заменяйте автоматически. Сравнение двух строк даёт подсказку, но не проверяет весь календарь.
Проверьте также часовую зону отображения. Например, Google Календарь показывает событие каждому приглашённому в его местной зоне. Изменение настройки отображения отличается от переноса встречи. На двух экранах сравнивайте одну дату и одну зону.
Подтвердите нужное правило
Для нашей серии с привязкой к Амстердаму подойдёт такая формулировка: «По пятницам в 15:00 Europe/Amsterdam. 30 октября 2026 года это 10:00 America/New_York и 14:00 UTC». При расхождении попросите организатора подтвердить правило и конкретную встречу.
Если договорились о 15:00 в Амстердаме, всем трём пятницам соответствует вариант A. Если о 13:00 UTC — вариант B. Ни один из них не сохраняет 09:00 в Нью-Йорке на всех трёх датах. Исправляйте встречу средствами календаря организатора, затем проверьте все три даты. Редактирование строки .ics с повторным импортом в эту проверку не входит.
Проверьте другую привязку
Выберите ответ или откройте объяснения ниже.
Ответы и пояснения
- 14:00: Верно. Нью-Йорк живёт по UTC−04:00, поэтому 09:00 соответствует 13:00 UTC. В Амстердаме UTC+01:00: получается 14:00.
- 15:00: Так получилось бы при разнице в шесть часов. В эту дату Амстердам уже перевёл часы, а Нью-Йорк ещё нет: разница составляет пять часов.
- 16:00: Переведите через UTC: 09:00 в Нью-Йорке — это 13:00 UTC, затем 14:00 в Амстердаме.
Источники и материалы
- Правительство Нидерландов: перевод часов 25 октября 2026 года
- NIST: летнее время в США в 2026 году
- RFC 5545: дата и время, часовые зоны и повторения iCalendar
- Google Календарь: повторяющиеся события и исключения
- Справка Google Календаря: зоны событий и отображения
- Python: zoneinfo и преобразования часовых зон