Google calendar api 日历循环规则-连续天数:每第一和第三个星期五和星期六

Google calendar api 日历循环规则-连续天数:每第一和第三个星期五和星期六,google-calendar-api,icalendar,rrule,Google Calendar Api,Icalendar,Rrule,在谷歌日历中,使用rrule,我想连续两天重复发生事件: 星期五和星期六 每月两次,间隔两周 我希望符合我的要求的是以下两个选项中的任何一个: 可能的选择 第一场比赛 第二场比赛 1. 星期五30-星期六1 星期五14-星期六15 2. 星期五七至六八 星期五21-星期六22 您可以使用BYMONTHDAY而不是BYSETPOS来指定每月的第一周和第三周: 第一个星期五:BYMONTHDAY=1,2,3,4,5,6,7 第一个星期六:BYMONTHDAY=2,3,4,5,6,7,8 第三个

在谷歌日历中,使用
rrule
,我想连续两天重复发生事件:

  • 星期五和星期六
  • 每月两次,间隔两周
我希望符合我的要求的是以下两个选项中的任何一个:

可能的选择 第一场比赛 第二场比赛 1. 星期五30-星期六1 星期五14-星期六15 2. 星期五七至六八 星期五21-星期六22
您可以使用
BYMONTHDAY
而不是
BYSETPOS
来指定每月的第一周和第三周:

  • 第一个星期五:
    BYMONTHDAY=1,2,3,4,5,6,7
  • 第一个星期六:
    BYMONTHDAY=2,3,4,5,6,7,8
  • 第三个星期五:
    BYMONTHDAY=15,16,17,18,19,20,21
  • 第三个星期六:
    BYMONTHDAY=16,17,18,19,20,21,22
可以说不如BYSETPOS优雅,但它解决了这个问题:

BEGIN:VCALENDAR
VERSION:2.0

BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=FR;BYMONTHDAY=1,2,3,4,5,6,7
SUMMARY:EventDay1
DTSTART;VALUE=DATE:20210430
EXDATE;VALUE=DATE:20210430
SEQUENCE:0
DESCRIPTION:EventDay1
END:VEVENT
BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=FR;BYMONTHDAY=15,16,17,18,19,20,21
SUMMARY:EventDay1
DTSTART;VALUE=DATE:20210430
EXDATE;VALUE=DATE:20210430
SEQUENCE:0
DESCRIPTION:EventDay1
END:VEVENT

BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SA;BYMONTHDAY=2,3,4,5,6,7,8
SUMMARY:EventDay2
DTSTART;VALUE=DATE:20210430
EXDATE;VALUE=DATE:20210430
SEQUENCE:0
DESCRIPTION:EventDay2
END:VEVENT
BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SA;BYMONTHDAY=16,17,18,19,20,21,22
SUMMARY:EventDay2
DTSTART;VALUE=DATE:20210430
EXDATE;VALUE=DATE:20210430
SEQUENCE:0
DESCRIPTION:EventDay2
END:VEVENT

END:VCALENDAR

它应该以某种方式检查星期五是否是一个月的最后一天,如果是这样的话,通过setpos纠正不同的
BYSETPOS
。我认为没有一条规则可以做到这一点。我想做一个包括两天(星期五和星期六)的单一活动是不可取的?是的,我认为两天的活动确实是解决方案,但我想知道我是否遗漏了什么。我只是环顾四周,不知道如何制定这样的规则,你能给我一些建议吗?嗨!我发布了一个答案,你能确认一下这个解决方案是否对你有效吗?太棒了。它确实回答了这个问题。我确实看到,
BYMONTHDAY
可以在预期的几天内强制允许间隔,但我没有看得更远,因为它看起来不那么优雅。我继续走另一条路,直到我撞到墙上,完全忘记了另一个选择。。。在这个层次上,我后悔选择了错误的路径xD