如何使用 RRULE 部分来实现 "twice a month"?

How can one use RRULE parts to implement "twice a month"?

我正在将以下一组重复规则映射到 RFC5545 RRULE(以创建 Google 日历事件):

其中一些比其他的更容易(考虑 Every4Weeks 与 TwiceAMonth)并且已经实施。


假设这可以用 RRULE 表示并且我的开始日期为 2017/08/24(如果开始日期相关)我的 RRULE 需要满足什么条件,例如 TwiceAMonth


奖金:如果有人为 "every other week"、"twice a year" 等提出 RRULE。我将永远感激不已。

要编写 RRULE,需要非常具体。 'Twice a week/month/year' - 如果你对人说那句话,他们能准确算出 2019 年是哪几天吗?

每个序列都需要一个 DTSTART,并且对于依赖于该日期或由该日期确定的循环序列肯定需要它。 EG:每隔一周需要一天开始,并且可以每 14 天或每 2 周重复一次。每月两次:哪几天?星期几相关吗?日期是由月初还是月底决定的?

您可以随意组合 FREQ、INTERVAL 和所有“BY”的 BYDAY、BYMONTHDAY、BYSETPOS 等。一些 'expand' 天数和一些 'limit' 天数。

规范本身有一些示例 https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html。以下是更多示例:

每月1号和15号两次

RRULE:FREQ=MONTHLY;BYMONTHDAY=1,15

每月两次,分别在第一个和第三个星期四

DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=MONTHLY;BYDAY=1TH,3TH

从 2018 年 8 月 24 日开始每隔一周

DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=WEEKLY;INTERVAL=2

每年 2 月和 8 月的第二天倒数两次

RRULE:FREQ=YEARLY;BYMONTHDAY=-2;BYMONTH=2,8

每年两次在最后一天和第 50 天

RRULE:FREQ=YEARLY;BYSETPOS=-1,50

有多种可能的组合。 https://icalevents.com/2447-need-to-know-the-possible-combinations-for-repeating-dates-an-ical-cheatsheet/