Нашел ответ:
Если вы явно задали distart
в конструкторе, тогда проблема решена.
Сравните эти примеры:
Пример первый: даетправильные результаты:
const rrule = new RRule({
freq: RRule.WEEKLY,
interval: 1,
wkst: RRule.MO,
count: 20,
dtstart: new Date(Date.UTC(2019, 1, 4, 12, 30, 0))})
Пример два: дает неправильные результаты
const rrule = new RRule({
freq: RRule.WEEKLY,
interval: 1,
wkst: RRule.MO,
count: 20})
rrule.options.dtstart = new Date(Date.UTC(2019, 1, 4, 14, 30, 0));
Для меня это выглядит немного интуитивно, потому что установка dtstart всегда должна давать один и тот же результат, независимо от того, установлен ли он вконструктор или установить его потом.