Переработал код по ссылке. Суть в том, что после создания календаря событий, я не могу туда через форму добавить событие. Всё кроме создания календаря должно происходить, как только форма отправила ответ.
Код:
`function onOpen() {
var menu = [{name: 'Set up conference', functionName: 'setUpConference_'}];
SpreadsheetApp.getActive().addMenu('Conference', menu);
}
function setUpConference_() {
if (ScriptProperties.getProperty('calId')) {
Browser.msgBox('Your conference is already set up. Look in Google Drive!');
}
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('List');
var range = sheet.getDataRange();
var values = range.getValues();
setUpCalendar_(values, range);
ScriptApp.newTrigger('onFormSubmit').forSpreadsheet(ss).onFormSubmit().create();
ss.removeMenu('Conference');
}
function setUpCalendar_(values, range) {
var cal = CalendarApp.createCalendar('Calendar One');
for (var i = 2; i < values.length; i++) {
var session = values[i];
var title = session[1];
title += session[2];
var start = new Date(session[6]);
var end = new Date(session[7]);
var D= session[4];
var options = {description: D,location: session[8], sendInvites: true};
var event = cal.createEvent(title, start, end, options).setGuestsCanSeeGuests(true);
}
range.setValues(values);
ScriptProperties.setProperty('calId', cal.getId());
}
function onFormSubmit(e) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('List');
var range = sheet.getDataRange();
var values = range.getValues();
var cal = CalendarApp.getCalendarsByName('Calendar One');
var i = (values.length-1);
var session = values[i];
var title = session[1];
title += session[2];
var start = new Date(session[6]);
var end = new Date(session[7]);
var D= session[4];
var options = {description: D,location: session[8], sendInvites: true};
var event = cal.createEvent(title, start, end, options).setGuestsCanSeeGuests(true);
}
Это исходный код модального окна, которое постоянно выскакивает при загрузке страницы