В настоящее время я использую стандартное восточное время, и у меня запланировано мероприятие, которое должно пройти весь день 14 сентября 2018 года. Когда я загружаю этот календарь ICS в свой Outlook 2016 на компьютере с Windows 10, когда мой компьютер находится в часовом поясе EST, он показывает событие правильно как весь день. Однако, если я изменил свой часовой пояс на что-то вроде Центрального времени, он изменит событие на с 23:00 до 23:00.
Я указал только дату и часовой пояс в формате UTC, и когда я просматриваю событие в CT, оно даже показывает сообщение о том, что оно было изменено с UTC. Так почему же это работает только по восточному времени, а не по центральному времени?
Я также проверил свои параметры в Outlook, и часовой пояс изменился, как я ожидал.
Я также протестировал тот же самый файл календаря ics на другом компьютере, который работает по восточному поясному времени. И дата показывает с 8 утра до 8 утра, а не весь день.
Почему я вижу такие разные результаты? Есть ли параметр, который мне не хватает?
Часовой пояс ICS:
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
DTSTART;VALUE=DATE:20170101
TZNAME:UTC
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
END:STANDARD
END:VTIMEZONE
Событие ICS:
BEGIN:VEVENT
DESCRIPTION: Test description
DTEND;VALUE=DATE:20180915
DTSTAMP:20180912T123153Z
DTSTART;VALUE=DATE:20180914
ORGANIZER;Tester
SEQUENCE:0
SUMMARY: TestSubject
UID:69c1777d-71e4-4160-81c7-79b35d9cf924
BEGIN:VALARM
ACTION:Display
DESCRIPTION:Reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
Прежде всего, вам не нужно включать компонент VTIMEZONE в поток icalendar, поскольку на него не будет ссылаться само событие.
Затем, если продолжительность составляет ровно один день, вы можете попробовать удалить DTEND.
Другой вариант - представить это событие как событие с плавающим временем (т.е. DATETIME без указания часового пояса).
DTSTART:20180914T000000
DTEND:20180915T000000
Наконец, у вас всегда есть возможность создать событие в Outlook, проверить, не перемещается ли оно при переключении часового пояса, затем экспортировать его как ics и посмотреть, как оно представлено.