首页 > 解决方案 > 通过 METHOD:PUBLISH 结合 SEQUENCE 发布频繁更改的 iCalendar

问题描述

我正在使用ical-generator库发布 iCalendar 提要。日历包含一个全天事件,它是对某一天发生的事情的预测。随着预测的更新,我想相应地更改事件的日期。

这是 2021 年 2 月 21 日示例事件的提要的样子:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//sebbo.net//ical-generator//EN
METHOD:PUBLISH
TIMEZONE-ID:Europe/Berlin
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
UID:42
SEQUENCE:26852582
DTSTAMP:20210120T150245Z
DTSTART;VALUE=DATE:20210121
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
SUMMARY:Test
ORGANIZER;CN="XXX":mailto:xxx@xxx.com
X-PUBLISHED-TTL:PT1M
LAST-MODIFIED:20210120T150245Z
END:VEVENT
END:VCALENDAR

当我想更新事件时,我使用相同UID但更新DTSTARTSEQUENCE(我使用“自纪元以来的分钟数”以确保我的序列号正确反映了更新顺序)。

现在假设预测发生了变化,事件必须移到第二天:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//sebbo.net//ical-generator//EN
METHOD:PUBLISH
TIMEZONE-ID:Europe/Berlin
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
UID:42
SEQUENCE:26852583
DTSTAMP:20210120T150309Z
DTSTART;VALUE=DATE:20210122
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
SUMMARY:Test
ORGANIZER;CN="XXX":mailto:xxx@xxx.com
X-PUBLISHED-TTL:PT1M
LAST-MODIFIED:20210120T150309Z
END:VEVENT
END:VCALENDAR

笔记:

所有主要客户端(Outlook Web Access、Google 日历、Apple 日历)都能正确显示提要,但它们不反映事件的任何更新。

我错过了什么?

标签: icalendar

解决方案


事实证明,一切都按预期工作,但是——正如@anmari 在评论中指出的那样——接收应用程序按照自己的节奏进行检查。


推荐阅读