如何使用 .ics 文件在 Windows 日历上重新安排事件?

How to reschedule event on Windows calendar using .ics file?

提问人:Lukas Salich 提问时间:10/23/2023 最后编辑:Lukas Salich 更新时间:10/24/2023 访问量:30

问:

我以为这非常容易,但事实并非如此。 我正在尝试准备要附加到电子邮件的 .ics 文件,以便将事件添加到日历中,我希望通过这种方法支持所有主要日历。我正在使用 icalendar 验证器进行理智检查。

但第一个问题=>RFC中的icalendar规范是超级愚蠢的。我可以详细说明,但我想细节无关紧要。

第二个问题是,按照规范,我只制作了 Google 日历来重新安排使用(避免)、省略属性并根据值对更新进行排序。使用这种方法,即使是 Google 日历也不是 100% 遵循规范,因为即使实际事件与已经收到的最大事件相同,事件也会被重新安排。但已经足够好了。由于简单,我非常喜欢这种方法,但它不适用于 iPhone 和 Windows 日历。METHOD:PUBLISHMETHOD:REQUESTSEQUENCEDTSTAMPDTSTAMP

最后一个问题,我设法让它在 iPhone 日历上运行,它可以与增加的属性一起用于重新安排。总比没有好。但是我仍然无法在Windows日历中重新安排事件,如何实现?它总是创建一个新事件。METHOD:PUBLISHSEQUENCE

到目前为止,我正在发送这样的东西作为原始事件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Travelport//NONSGML GOL Mobile//EN
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Flight 
 from A 
 to B
UID:3d87d036-ad91-4576-b362-6a35296573a9
STATUS:CONFIRMED
TRANSP:OPAQUE
DTSTART:20240713T153001
DTEND:20240713T153002
DTSTAMP:20231023T120500
LOCATION:airport A, city A
GEO:0;0
DESCRIPTION:Flight 
 from A 
 terminal 1, 
 city A 
 to B 
 terminal 1, 
 city B
END:VEVENT
END:VCALENDAR

像这样作为重新安排事件:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Travelport//NONSGML GOL Mobile//EN
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Flight 
 from A 
 to B
UID:3d87d036-ad91-4576-b362-6a35296573a9
SEQUENCE:1
STATUS:CONFIRMED
TRANSP:OPAQUE
DTSTART:20240713T154001
DTEND:20240713T154002
DTSTAMP:20231023T120501
LOCATION:airport A, city A
GEO:0;0
DESCRIPTION:Flight 
 from A 
 terminal 1, 
 city A 
 to B 
 terminal 1, 
 city B
END:VEVENT
END:VCALENDAR

我尝试了 / s、设置/省略、、添加的组合,但我看不出还有什么应该更新以使其重新安排而不是创建 2 个事件,这对我来说有点疯狂,因为对象具有相同的 UID。帮助!PUBLISHREQUESTMETHODSEQUENCESTATUS:TENTATIVEORGANIZER

我尝试了这个问题这个问题的建议,但没有帮助。

Windows iCalendar 时间表

评论

0赞 Lukas Salich 10/24/2023
他妈的,我设法使Outlook无法工作,问题是我无法使它在Windows日历中工作。
0赞 Lukas Salich 10/25/2023
it*,添加最小长度的字符

答: 暂无答案