Я пытаюсь создать список запланированных презентаций и отслеживать ход каждой презентации (кто, когда и что) с помощью листа Google. В то же время, когда я создаю список, я пытаюсь подключить его и к календарю Google, чтобы каждая презентация создавалась автоматически, когда я вписываю лист Google. Однако дублирование происходит всякий раз, когда я обновляю sh (выполнение кода или отладка). Я попытался использовать Array и Pu sh, чтобы удалить дублирование, но это не сработало.
Что касается отдельной проблемы, мое пользовательское меню тоже не работало, хотя пользовательский интерфейс там есть. Когда я щелкнул, он говорит Функция сценария не найдена: schedulePresentation
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = spreadsheet.getRange("W4").getValue();
var eventCal = CalendarApp.getCalendarById(calendarId);
var signups = spreadsheet.getRange("R12:T100").getValues();
var existingEvents=Calendar.Events.list(calendarId);
var eventArray=[];
existingEvents.items.forEach(function(e){eventArray.push(e.summary)});
for (x=0; x<signups.length; x++) {
var shift = signups[x];
var startTime = shift[0];
var endTime = shift[1];
var PresentationTitle = shift[2];
if(eventArray.indexOf(PresentationTitle)==-1){
eventCal.createEvent(PresentationTitle,new Date(startTime),new Date(endTime));
}else{
Logger.log('event exists already');
var startRow=12; //not sure where this is supposed to be or even needed (but the rationale for this code was to to dynamically detect the rows for duplication)
var startColumn=20; //column T
var rowNumber=spreadsheet.getLastRow()-startRow+1;
var columnNumber=3;
var signups = spreadsheet.getRange(startRow,startColumn,rowNumber,columnNumber).getValues();
}
}
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Sync to Calendar')
.addItem('Schedule Presentation', 'schedulePresentation')
.addItem('Email shift confirmation', 'emailTeam')
.addSeparator()
.addSubMenu(ui.createMenu('Delete')
.addItem('Delete shifts from Calendar', 'clearCalendar'))
.addToUi();
function schedulePresentation() {
}
function emailTeam() {
}
function clearCalendar() {
}
}