问题描述
我已经创建了一个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