当未指定开始和结束时间时,在 Outlook 中导入的 ICS 文件显示错误的结束日期

ICS file when imported in outlook shows wrong end date when no start & end time is specified

我已经通过 PHP & JS 生成了 ICS 文件。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:https://www.google.com/
CALSCALE:GREGORIAN
TZ:+00
BEGIN:VEVENT
UID:https://www.google.com/
DTSTAMP:20180308T140833Z
DTSTART;VALUE=DATE:20180308
DTEND;VALUE=DATE:20180312
SUMMARY:"Hamlet"
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML><HTML><BODY>Show Times:<br/>March 8-11, 2018 @ 7:30 pm<br/> March 12, 2018 @ 2:00 pm<br/>Often dubbed the “Greatest Play Ever Written” and written by the most produced playwright each year, William Shakespeare, the titular Hamlet.<br/><a href=https://www.whittierevents.com/events/hamlet/>https://www.whittierevents.com/events/hamlet/</a></BODY></HTML>
LOCATION:6760 Painter Ave, Whittier, CA 90601
END:VEVENT
END:VCALENDAR

当我在 Outlook 中导入此文件时,结束日期显示为 3 月 11 日,尽管它是 3 月 12 日。 我该如何解决这个问题?

根据规范,全天活动的结束是第二天的开始。因此 ics 文件中的 1 天事件将有 2 个日期 - DTEND 将是 DTSTART 之后的一天。所以在我们的例子中,为了让它在应用程序中看起来像是在 12 号结束,.ics 文件必须说 13 号。另见