Outlook live ICS 日历关闭 1 小时
Outlook live ICS calendar off by 1 hour
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME:Test Cal
X-WR-CALDESC:2016-2017
X-WR-TIMEZONE:America/Toronto
BEGIN:VTIMEZONE
TZID:America/Toronto
X-LIC-LOCATION:America/Toronto
BEGIN:STANDARD
DTSTART:20161106T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20170312T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:20161020T235802EDT-7919w7sZDz
DTSTAMP:20161021T035802Z
DESCRIPTION:Details Sat Oct 15\, 2016 6:00pm - 7:00 pm
DTSTART;TZID=America/Toronto:20161015T180000
DTEND;TZID=America/Toronto:20161015T190000
LOCATION:Hockey Arena
SEQUENCE:1
SUMMARY:Game
END:VEVENT
END:VCALENDAR
在 Gmail、iPhone 或 iCloud 中订阅此日历时,即使在下午 6 点也会显示正确的时间。但是,Outlook Live 会在一小时后显示此事件:晚上 7 点到晚上 8 点。为什么会这样?夏令时更改后日期和时间是正确的。所以 11 月 5 日之后,时间是正确的。
不知道你从哪里得到这个 VTIMEZONE 定义,但它的 DST 仅从 2017 年开始。
尝试类似的东西:
BEGIN:VTIMEZONE
TZID:America/Toronto
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
DTSTART:20081102T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
DTSTART:20080309T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
我假设空行仅添加到您的 Whosebug post。
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME:Test Cal
X-WR-CALDESC:2016-2017
X-WR-TIMEZONE:America/Toronto
BEGIN:VTIMEZONE
TZID:America/Toronto
X-LIC-LOCATION:America/Toronto
BEGIN:STANDARD
DTSTART:20161106T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20170312T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:20161020T235802EDT-7919w7sZDz
DTSTAMP:20161021T035802Z
DESCRIPTION:Details Sat Oct 15\, 2016 6:00pm - 7:00 pm
DTSTART;TZID=America/Toronto:20161015T180000
DTEND;TZID=America/Toronto:20161015T190000
LOCATION:Hockey Arena
SEQUENCE:1
SUMMARY:Game
END:VEVENT
END:VCALENDAR
在 Gmail、iPhone 或 iCloud 中订阅此日历时,即使在下午 6 点也会显示正确的时间。但是,Outlook Live 会在一小时后显示此事件:晚上 7 点到晚上 8 点。为什么会这样?夏令时更改后日期和时间是正确的。所以 11 月 5 日之后,时间是正确的。
不知道你从哪里得到这个 VTIMEZONE 定义,但它的 DST 仅从 2017 年开始。 尝试类似的东西:
BEGIN:VTIMEZONE
TZID:America/Toronto
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
DTSTART:20081102T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
DTSTART:20080309T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
我假设空行仅添加到您的 Whosebug post。