Экспресс альтернативные повторяющиеся времена в iCalendar

Есть ли способ выразить следующее в iCalendar? (возможно, с помощью RRULE?)

С 9:00 до 17:00 каждый день, кроме воскресенья, когда между 10:00 и 16:00.

Могу ли я создать несколько RRULE? Какие из них имеют приоритет?

1 ответ

Решение

В iCalendar нет понятия о событиях с дырой в середине продолжительности. Таким образом, даже не говоря о повторяющихся событиях, вы не можете создать с одним событием что-то вроде с 9:00 до 10:00 и с 16:00 до 17:00.

Как следствие, вам нужно создать 3 события:

DTSTART:2013xxxxT090000
DURATION:PT1H
RRULE:FREQ=DAILY

DTSTART:2013xxxxT100000
DURATION:PT6H
RRULE:FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR,SA

DTSTART:2013xxxxT160000
DURATION:PT1H
RRULE:FREQ=DAILY

Что касается нескольких RRULE, то это было поддержано в RFC2445, но в RFC5545 оно устарело (как и EXRULE) из-за отсутствия поддержки и сложности.

Другие вопросы по тегам