Создание или изменение события без запуска календарного триггера - PullRequest
0 голосов
/ 09 мая 2020

У меня есть триггер на изменение календаря. В этом я хотел бы иметь возможность изменить событие, время которого было только что изменено пользователем (путем предоставления правильного времени, которое хранится в Google Таблицах).

Или воссоздать событие, если оно было случайно удалено пользователем.

Возможно ли это без срабатывания того же календарного триггера?

1 Ответ

1 голос
/ 13 мая 2020

Триггер календаря не сработает, если вы измените календарь (создадите, обновите, удалите события) внутри самого триггера, но в качестве обходного пути вы можете вызвать ту же функцию внутри самого триггера. Например:

// Global variables
var counter = 0;

// Calendar Trigger
function onCalendarTrigger(e) {
  var calendar = CalendarApp.getCalendarById('your-calendar-id');
  // Create a random event
  calendar.createEvent(`Test Created ${Math.random()}`,
    new Date('May 15, 2020 20:00:00 UTC'),
    new Date('May 16, 2020 21:00:00 UTC'));
  if(counter < 1){
    // Increment the counter 
    // before the onCalendarTrigger function is being called again
    // In this way, you will not enter in this section again 
    counter++;
    onCalendarTrigger(e);
  }
}

Будьте осторожны с этим обходным путем, потому что, если вы сделаете это неправильно, вы введете бесконечное l oop и обязательно попадете в квоты скрипта приложений .

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