Вы создаете события календаря на основе ответов формы из формы Google. Когда ваш код выполняется, он создает события для всех ответов и не ограничивается самым последним ответом.
Действия для решения этой проблемы двоякие:
- вызывает функциюс помощью устанавливаемого триггера `onFormSubmit.
- используйте Объекты событий для захвата значений ответов формы и обновления календаря на основе этих значений.
Примечание:Ваша функция теперь называется CreateEvent(e)
. Атрибут e
автоматически предоставит вам доступ к объектам событий.
Следующий код не проверен, но он указывает подход, который необходимо использовать.
`
function CreateEvent(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Logger.log(JSON.stringify(e)); // DEBUG
// identify Calendar
var eventCal = CalendarApp.getCalendarById('<insert id >');
// get the response data
var summary = e.values[2];
var startTime = e.values[7];
var endTime = e.values[8];
var guests = e.values[1];
var description = e.values[3];
var location = e.values[5];
var event = {
'location': location,
'description': description,
'guests':guests +',',
'sendInvites': 'True',
}
// create the event.
eventCal.createEvent(summary, startTime, endTime, event)
}
onFormSubmit
Важно, чтобы вы активировали свою функцию с помощью устанавливаемого триггера onFormSubmit
. Обратитесь к документации для Управление триггерами вручную для пошагового объяснения с практическими рекомендациями.
Ваш экран должен выглядеть примерно так, когда вы завершите настройку.
Обратите внимание, что имя функции (CreateEvent
) НЕ указывает на то, что вы используете объекты событий - это нормально - триггер просто выбирает основное имя. НО крайне важно, чтобы ваша функция на самом деле называлась CreateEvent(e)
, чтобы она могла получить доступ к объектам событий.