Почему функция addDate для RecurrenceRule не учитывает переход на летнее время в марте? - PullRequest
0 голосов
/ 10 января 2019

Я пишу скрипт для добавления событий из формы Google непосредственно в календарь Google с поддержкой повторяющихся событий. Для этого я проверяю доступность на каждый день, когда событие повторяется, а затем передаю даты занятости и освобождения в виде массивов в объекте в мою функцию createEvent. Когда я пытаюсь создать RecurrenceRule, чтобы добавить эти даты в мой календарь, он не учитывает 1-часовую смену летнего времени, но только в марте (когда происходит переход на летнее время). Отлично работает в апреле и мае.

Я пытался установить тот же часовой пояс для повторения, и я даже пытался учесть летнее время самостоятельно в массиве дат, но безрезультатно. Вот в основном, что это за функция:

function createEvent(event, availabilityObj) {
    var calendar = CalendarApp.getDefaultCalendar();

    var freeDates = availabilityObj.availableDates;

    var recurrence = CalendarApp.newRecurrence().setTimeZone("America/Chicago");
    for (var i = 0; i < freeDates.length; i++) {
        recurrence.addDate(freeDates[i]);
    }

    calendar.createEventSeries(event.name, event.start, event.end, recurrence);
}

Я прочитал документацию по классу RecurrenceRule, но не нашел там решения этой дилеммы. Кто-нибудь знает решение этой проблемы, кроме индивидуального создания всех повторяющихся событий? Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...