重复的日历邀请在 DST 开始后显示一小时的休息时间



我正在从我的.net应用程序(C#)发送请求,以在Outlook中创建定期会议邀请。会议邀请在夏令时(2015 年 3 月 8 日至 2015 年 11 月 1 日)期间显示休息一小时。

剩余时间,

我的日历显示正确的时间,我正在将以下代码发送到 Outlook 日历。

请注意我的应用程序源使用EST和目标到所有时区。

代码相同。

BEGIN:VCALENDAR
PRODID:-//Schedule a Meeting
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150221T120000Z
DTEND:20150221T123000Z
LOCATION:XYZ, ABC
UID:0c5c9c55-851f-462b-bdf2-48df5991561b
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Test for UTC Time Zone
SUMMARY:Test for UTC Time Zone
ORGANIZER:MAILTO:myapplication@gmail.com
ATTENDEE;CN="";RSVP=TRUE:mailto:sender@gmail.com.com
RRULE:FREQ=Monthly;COUNT=4;BYDAY=3SA
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR

这是问题所在:

DTSTART: starttime.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z")
DTEND: Endtime.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z")

您将开始和结束时间显式指定为 UTC,并且从不指定时区。

如果希望事件位于时区中,则应指定本地时间而不是 UTC 时间(因此末尾没有 Z)和用于指定时区的 TZID 属性。我建议你将一些现有的事件导出为条目,看看它们是什么样子的。

如果您希望该值成为"浮动时间",则可以将其保留为没有任何时区的值,该时间将以本地时区进行解释。

最新更新