我需要以iCalendar(RFC5545)规则的形式安排事件。 该事件应被触发:事件发生日内,每两周,周一和周三每30分钟触发一次。
到目前为止,我创建了以下规则字符串: FREQ = WEEKLY; INTERVAL = 1; BYDAY = MO,WE; BYHOUR = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23; BYMINUTE = 30
我希望该活动“在一天中的每30分钟内,每两周的周一和周三进行”。
但这实际上意味着要运行:“每两周,星期一和星期三,一天中的每30分钟一次”
答案 0 :(得分:0)
德米特里,下面是一个可能的解决方案,但是您应该注意,某些应用程序(谷歌?)不接受定期记录,这是我认为您的问题所导致的。
您必须考虑RRULE修饰符是做以下两件事之一:1展开和2限制。例如:您的重复活动实际上每30分钟重复一次。
请参见示例https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html上的“每15分钟发生6次”和“每年的每年第20个星期一”。
因此,您的示例将是FREQ = MINUTES; INTERVAL = 30“扩展”,但是您还想将其“限制”为仅在第二个星期一和星期三,因此添加一个BYDAY:
FREQ = MINUTES; INTERVAL = 30; BYDAY = 2MO,2WE
此备忘单https://icalevents.com/2447-need-to-know-the-possible-combinations-for-repeating-dates-an-ical-cheatsheet/可能有助于查看有效的组合,这些组合可以扩展或限制重复出现的位。
答案 1 :(得分:0)
我相信您可以像在crontab中一样,在一个小时内向BYMINUTE
添加一分钟:
FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE;BYHOUR=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23;BYMINUTE=0,30
这目前在https://jakubroztocil.github.io/rrule/处产生以下rule.all()
:
Wed, 10 Jul 2019 00:00:53 GMT
Wed, 10 Jul 2019 00:30:53 GMT
Wed, 10 Jul 2019 01:00:53 GMT
Wed, 10 Jul 2019 01:30:53 GMT
...
Wed, 10 Jul 2019 23:00:53 GMT
Wed, 10 Jul 2019 23:30:53 GMT
Mon, 15 Jul 2019 00:00:53 GMT
Mon, 15 Jul 2019 00:30:53 GMT
...
Mon, 15 Jul 2019 23:00:53 GMT
Mon, 15 Jul 2019 23:30:53 GMT
Wed, 17 Jul 2019 00:00:53 GMT
Wed, 17 Jul 2019 00:30:53 GMT
Wed, 17 Jul 2019 01:00:53 GMT
我相信这是您想要的。