Получить повторение CalendarEvent в дополнении G-Suite - PullRequest
1 голос
/ 07 февраля 2020

Я работаю над надстройкой Календаря Google, которая синхронизирует данные событий с внешней службой. Легко получить данные, такие как заголовок, описание, даты и т. Д. c. события, и я могу даже проверить, является ли это повторяющимся событием или нет с помощью event.isRecurringEvent().

То, что я не могу выяснить, это то, как получить правило (и) повторения для указанного c событие. Это вообще возможно? Ни https://developers.google.com/apps-script/reference/calendar/calendar-event, ни https://developers.google.com/apps-script/reference/calendar/calendar-event-series не имеют ничего общего с getRecurrenceRule()

Спасибо за любую помощь!

1 Ответ

2 голосов
/ 07 февраля 2020

Если я вас правильно понимаю, у вас есть CalendarEvent в скрипте Google Apps, и вы хотите получить его повторение.

Поскольку, как вы сказали, не существует метода, подобного getRecurrenceRule(), вам придется активировать Advanced Calendar Service и вызывать Events: получить , чтобы получить информация о повторении события. Если event является вашим CalendarEvent, вы можете получить информацию о повторении, выполнив следующие действия:

eventId = event.getId().split("@")[0];
var eventFromAPI = Calendar.Events.get(calId, eventId);
var recurrence = eventFromAPI["recurrence"];
return recurrence;

Примечания:

  • Я использую split для удаления символов после @ строки, возвращаемой event.getId(), поскольку она добавляет @google.com.
  • . recurrence представляет собой список RRULE, EXRULE, RDATE и EXDATE строки для повторяющегося события, как указано в RFC5545". Несмотря на то, что в нем есть информация о повторении события, это не экземпляр класса скриптов приложений RecurrenceRule . Насколько я знаю, это невозможно вернуть.

Ссылка:

Я надеюсь, что это может помочь.

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