Коллеги, изучаю прогу и решил написать небольшой скрипт для гугл таблиц, который парсит мой новосозданный календарь на предмет сделанных задач. Логика простая: скрипт открывает таблицу и календарь, сравнивает задачи с одинаковыми названиями из таблицы (столбик Б) и календаря, а потом вписывает в столбик С значение "сделано" или "в работе" в зависимости от описания задачи в календаре. Скрипт как бы выполняется, но записи не происходит, кто-то с таким сталкивался?
function updateRegistry() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Реестр');
var tasks = sheet.getRange('B2:B').getValues().flat().filter(String);
var calId = '19f51079698a04d79e4c33156172abd5eea83a700e3c4456d2effe7ebd5e0e7d@group.calendar.google.com';
var cal = CalendarApp.getCalendarById(calId);
if (!cal) {
var calendars = CalendarApp.getCalendarsByName('exampleCalendarNameHere');
cal = calendars[0];
}
var events = cal.getEvents(new Date('2022-01-01T00:00:00Z'), new Date('2022-12-31T23:59:59Z'));
var eventsWithTasks = events.filter(function (event) {
return tasks.includes(event.getTitle());
});
for (var i = 0; i < eventsWithTasks.length; i++) {
var event = eventsWithTasks[i];
var index = tasks.indexOf(event.getTitle());
if (index != -1) {
if (event.getDescription().toLowerCase().indexOf('сделано') != -1) {
sheet.getRange(index + 2, 3).setValue('сделано');
} else {
sheet.getRange(index + 2, 3).setValue('в работе');
}
}
}
SpreadsheetApp.flush();
}