表示 ICS 文件中具有不同事件长度的每周两次事件

Representing a twice-weekly event with varying event length within an ICS file

提问人:user850667 提问时间:10/2/2023 更新时间:10/2/2023 访问量:19

问:

我有一个每周两次的活动,我想为其生成一个 ICS 文件,以便用户可以将这一系列活动添加到他们的日历中。我熟悉例如 对于每周在周一和周四举行两次的事件,但这只能让我生成一个日历事件,其中周一的事件与周四的事件具有相同的开始时间和持续时间。RRULE:FREQ=WEEKLY;BYDAY=MO,TH;

我希望能够无限期地将每周一上午 9 点至 10 点和周四下午 4 点至下午 6 点表示为某人日历中的一个重复事件(因此,如果将其删除,我们可以使用取消方法删除整个事情,例如)。

单个 ICS 文件是否有可以表示上述事件的格式?如果没有,有没有其他方法可以实现这一目标?

我尝试包括一个 RRULE(因为我知道每个 ICS 文件只能使用一次)和两个 VEVENT 来表示周一的事件和周四的事件,但这似乎不是有效的 ICS 文件/无法由我的邮件客户端打开。

iCalendar 规则 RFC5545

评论


答:

0赞 Evert 10/2/2023 #1

您可以使用该参数执行此操作,一般方法是:THISANDFUTURE

  1. 在基本对象中创建一个,该对象在星期一重复出现,直到特定日期或实例数。RRULEVEVENT
  2. 在最后一个星期一事件上创建一个例外 ( +),将事件一直移回列表的开头,但现在用于星期四事件。必须将此事件标记为 。EXDATERECURRENCE-IDTHISANDFUTURE

请注意,这感觉很麻烦,我不会 100% 相信所有客户都能很好地处理这个问题,但值得一试。

坦率地说,我认为更可靠的方法是只执行一个重复规则(例如,星期一事件),然后为每个星期四事件添加一个例外。这大大增加了对象的大小,但会更加可靠,并且得到了很好的支持。