Чтобы кодировать RRULE, нужно быть очень конкретным. «Два раза в неделю / месяц / год» - если бы вы сказали это человеку, смогут ли они определить, какие именно дни в 2019 году?
Каждая последовательность нуждается в DTSTART, и она определенно необходима для повторяющейся последовательности, которая зависит или определяется этой датой. Например, для начала каждой недели потребуется день, и он может повторяться каждые 14 дней или каждые 2 недели. Два раза в месяц: в какие дни? релевантен день недели? дни определяются началом или концом месяца?
В вашем распоряжении есть комбинации FREQ, INTERVAL и всех BYDAY, BYMONTHDAY, BYSETPOS и т. Д. Некоторые «увеличивают» количество дней, а некоторые «ограничивают» количество дней.
В самой спецификации есть несколько примеров 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
Каждую неделю, начиная с 24 августа 2018 года
DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=WEEKLY;INTERVAL=2
Два раза в год со 2-го по последний день февраля и августа
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/