google 日历中的 ICAL 有额外的活动

ICAL in google calendar has extra event

我遇到了 google 日历显示额外日历事件的问题。 ICS

PRODID:-//TEST//NONSGML Version 1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Asia/Kolkata
BEGIN:DAYLIGHT
DTSTART:19411001T000000
TZOFFSETFROM:+055320
TZOFFSETTO:+0630
RDATE:19411001T000000
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:18800101T000000
TZOFFSETFROM:+055328
TZOFFSETTO:+055320
RDATE:18800101T000000
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19420901T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0630
RDATE:19420901T000000
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19420515T000000
TZOFFSETFROM:+0630
TZOFFSETTO:+0530
RDATE:19420515T000000
RDATE:19451015T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:19700119T063633Z
ORGANIZER:mailto:invite@a.com
UID:3fDJ2_gx5QJr4ygb@EqPBCMSzkxGfKg0
SEQUENCE:0
RRULE:FREQ=WEEKLY;WKST=SU;INTERVAL=1;BYDAY=SU,FR,SA
ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:a@gmail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:a@b.com
DTSTART;TZID=Asia/Kolkata:20200114T150000
DTEND;TZID=Asia/Kolkata:20200114T160000
SUMMARY:DEV TEST 
TRANSP:OPAQUE
CREATED:20200114T091621Z
LAST-MODIFIED:20200114T091621Z
STATUS:CONFIRMED
LOCATION:Location
DESCRIPTION:Description
END:VEVENT
END:VCALENDAR

日历在星期三创建,在星期五、星期六和星期日永不结束每周重复。在 google 日历中,我观察到有一个为星期三(创建日期)创建的额外事件,包括重复事件。我没有在 Outlook 日历中观察到这个问题。

知道为什么仅在 google 日历中创建的事件创建日期有一个额外的事件,而在 outlook 日历中没有观察到。

我认为这是由于对 iCalendar 规范的不同解释造成的:

https://www.rfc-editor.org/rfc/rfc5545#section-3.8.5.3

特别是这一部分:

The "DTSTART" property defines the first instance in the recurrence set. The "DTSTART" property value SHOULD be synchronized with the recurrence rule, if specified. The recurrence set generated with a "DTSTART" property value not synchronized with the recurrence rule is undefined.

所以 RFC 没有定义当 DTSTART 与重复规则不匹配时会发生什么,并且可能 Google 并且 Microsoft 采取了不同的方法。

为避免这种情况,请确保您的 DTSTART 发生在周五、周六或周日。