我正在尝试通过 ics 文件创建约会并且它工作正常,但是当我创建另一个用于取消约会的 ics 文件并尝试导入时,它会抛出错误"无法打开事件,日历文件可能已损坏"。
对于约会创建 APPOINTMENT.ics按预期创建条目
预约
.ics BEGIN:VCALENDAR
PRODID:-//Lotus Development Corporation//NONSGML Notes 9.0.1//EN_C
VERSION:2.0
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:19501029T020000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19500326T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:123456
ORGANIZER;CN=Avi Kaushik/Show:mailto:CN=akaushik@xyz.de
DTSTART;TZID="W. Europe Standard Time":20190410T130000
DTEND;TZID="W. Europe Standard Time":20190410T140000
LOCATION:
SUMMARY;LANGUAGE=en-us:process ics file 555555
DESCRIPTION;LANGUAGE=en-us: n
TZID:W. Europe Standard Time
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
但是当尝试通过取消取消上述条目时.ics它包含与约会相同的 UID.ics ,它不起作用
取消
.ics BEGIN:VCALENDAR
PRODID:-//Lotus Development Corporation//NONSGML Notes 9.0.1//EN_C
VERSION:2.0
METHOD:CANCEL
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:19501029T020000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19500326T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYMINUTE=0;BYHOUR=2;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:123456
ORGANIZER;CN=Avi Kaushik/Show:mailto:CN=akaushik@xyz.de
DTSTART;TZID="W. Europe Standard Time":20190410T130000
DTEND;TZID="W. Europe Standard Time":20190410T140000
SEQUENCE:1
STATUS:CANCELLED
LOCATION:
SUMMARY;LANGUAGE=en-us:process ics file 555555
DESCRIPTION;LANGUAGE=en-us: n
TZID:W. Europe Standard Time
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
您的第一个 ical 流只是一个简单的活动,没有任何与会者。您的第二个流是带有方法取消的 iTIP 消息。iTIP 取消消息旨在用于邀请上下文(即与 ATTENDEE 属性一起使用(。请参阅 https://www.rfc-editor.org/rfc/rfc5546#section-3.2.5 。在您的情况下,原始活动没有与会者,也没有取消。
您没有指定这些 ics 流如何最终进入您的客户端?如果您只是导入它们,我会尝试在第二个流中删除 METHOD:CANCEL 属性。状态:已取消应该就足够了。