设置VTIMEZONE标签会破坏我的ICS文件

问题描述

我已经创建了一个ICS文件,该文件包含在通过我的Web应用程序发送给我的电子邮件中,指定的时间以UTC时间表示,需要应用该值,因为在我的测试中,日历客户端会假设时区为本地用户时间。

这是我的ICS文件的样子:

BEGIN:VCALENDAR
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:VEVENT
UID:a0F8E00000oWo53UAC
DTSTART:20200814T194500
DTEND:20200814T204500
SUMMARY:Your Appointment - Appointment Name Here
LOCATION:123 Fake Street,New York,1234
DESCRIPTION:
ORGANIZER;CN=:MAILTO:
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:disPLAY
END:VALARM
END:VEVENT
END:VTIMEZONE
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:VEVENT
UID:a0F8E00000oWo59UAC
DTSTART:20200814T220000
DTEND:20200814T230000
SUMMARY:Your Appointment - Appointment Name Here
LOCATION:123 Fake Street,1234
DESCRIPTION:
ORGANIZER;CN=:MAILTO:
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:disPLAY
END:VALARM
END:VEVENT
END:VTIMEZONE
END:VCALENDAR

我在VTIMEZONE节点周围添加EVENT标签。我也已在顶部指定了时区,例如TZID:UTC

这似乎不起作用。有人可以帮我解决这个问题吗?

解决方法

VEVENT组件不得在VTIMEZONE组件内部!

像这样指定时间戳的时区:

DTSTART;TZID=UTC:20200814T194500