Для создания Триггера события календаря для всех календарей, которыми владеет пользователь, можно использовать Календарь API (после включения) :
function getOwnedCalendars_() {
const options = {
minAccessLevel: "owner", // freeBusyReader, reader, writer
fields: "nextPageToken, items(id,summary,description)"
};
const cals = [];
do {
var search = Calendar.CalendarList.list(options);
options.pageToken = search.nextPageToken;
if (search.items && search.items.length)
Array.prototype.push.apply(cals, search.items);
} while (options.pageToken);
return cals;
}
function giveMeTheTrigger(e) {
console.log(e);
}
function makeTriggers() {
getOwnedCalendars_().forEach(function (cal) {
var t = ScriptApp.newTrigger("giveMeTheTrigger")
.forUserCalendar(cal.id)
.onEventUpdated()
.create();
console.log({message: "Created event trigger for calendar '" + cal.summary + "'",
desc: cal.description, id: cal.id, triggerId: t.getUniqueId()});
});
}
Учитывая, что вы ожидаете, что будете использовать API-интерфейс Календаря для эффективного использования этого триггера Обновление события , это не должно быть слишком большим дополнительным расходом.