【问题标题】:How can I write an ICS file for the Friday before the first Saturday of the month?如何在每月第一个星期六之前的星期五编写 ICS 文件?
【发布时间】:2018-10-03 01:22:58
【问题描述】:

我见过How can an ICS file be written for a recurring event?,但我有一个相当复杂的重复出现,在查看the syntax 的 RRULE 后无法找出规则。

我想要在每个月的第一个星期六之前的星期五发生的事件。这个Frid​​ay-before-the-first-Saturday当然可能是上个月。我假设如果我能让这个工作,Frid​​ay-before-the-second-Saturday-third- 的类似(但不相同)事件>-fourth-,第五个星期六之前的星期五未定义。

显然我有RRULE:FREQ=MONTHLY;BYDAY=FR;,但如果我尝试使用BYMONTHDAY 来遵循一些示例,我会遇到麻烦:28 将是一个有效的Frid​​ay-before-a-first-Saturday 在 2 月,但在任何其他月份,28 日星期五将是第 5 个星期六之前的星期五。 29(闰年)、3031 也是如此。

目标是将其包含在 Google 日历中,我知道它支持显示它无法编辑的 ICS RRULE。那么,假设有可能,我怎样才能为这个事件创建一个 RRULE?我已经考虑了每个月长度的单独事件和随附规则。 31:一月、三月、五月、七月、八月、十月、十二月和 30:四月、六月、九月、十一月都可以,但闰年仍然是一个问题:二月 28 日可能是第一个星期六或第五个星期六之前的星期五(例如 2020 年,所以我的前两个案例之一失败了)。

【问题讨论】:

    标签: icalendar


    【解决方案1】:

    您在必须使用 BYDAY=FR 的情况下走在正确的轨道上,并且由于您可以使用负 BYMONTHDAY,以下应该可以解决问题:

    RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=-1,1,2,3,4,5,6

    【讨论】:

    • 谢谢。我尴尬地接近得到它,但在闰年挂断了电话。现在来对抗 gcal 的导入,当我导入第二个事件时,它似乎会清除一个事件......
    • 嗨,克里斯,请确保您为每个事件使用不同的唯一 UID tools.ietf.org/html/rfc5545#section-3.8.4.7
    • 合二为一!复制粘贴不起作用,但至少我自己想通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2014-08-04
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多