Я пытаюсь написать скрипт для Google Sheets для синхронизации c с Календарем Google. Мой текущий контрольно-пропускной пункт пытается заставить это прочитать все записи в столбце, игнорируя пустые ячейки и не делая дублирующие записи, если я запускаю это несколько раз. Когда для getRange задано значение, которое охватывает пустую ячейку, оно выдаст ошибку
Исключение: параметры (String, String, String) не соответствуют сигнатуре метода для CalendarApp.Calendar. createEvent.
Хотя он все еще создает записи, я уверен, что тот, кто будет обеспокоен, когда увидит красную ошибку, сообщающую, что что-то пошло не так.
Другая проблема заключается в том, что каждый раз, когда запускается скрипт, он будет дублировать записи, которые были скопированы с предыдущих времен. Как мне предотвратить это?
Вот текущий скрипт.
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Sync to Calendar');
var item = menu.addItem('Commit', 'syncCalendar');
item.addToUi();
}
function syncCalendar() {
var spreadsheet = SpreadsheetApp.getActive();
var calendarId = "*******";
var eventCal = CalendarApp.getCalendarById(calendarId);
var signups = spreadsheet.getRange("D3:F10").getValues();
for (x=0; x<signups.length; x++) {
var slot = signups[x];
var startTime = slot[0];
var endTime = slot[1];
var name = slot[2];
eventCal.createEvent(name, startTime, endTime);
}
}