- Вы хотите создать календарь событий с несколькими гостями.
- В вашей ситуации значение столбца «K» равно
sample1@gmail.com,sample2@gmail.com
, которое разделено ,
. - Значения столбцов «A», «E», «F» "," G "," H "и" K "в активном листе - это соответственно название, время начала, время окончания, описание, местоположение и гости.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Точки модификации:
- Когда гости разделены
,
, вы можете получить каждое электронное письмо, используя split()
. И их можно добавить с помощью addGuest(email)
. - . В вашем скрипте возникает ошибка при l oop на
title.length+1
из for(var i = 0; i < title.length+1; i++){
. - При извлечении значений из диапазон данных «A2: K #», стоимость процесса может быть уменьшена. Это было упомянуто комментарием Купера и обсуждениями.
Когда эти пункты отражены в вашем сценарии, это выглядит следующим образом.
Шаблон 1:
В этом шаблоне используется служба календаря CalendarApp
. В этом случае scheduleClass()
был изменен.
Модифицированный скрипт:
function scheduleClass(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendar = CalendarApp.getCalendarById("primary@group.calendar.google.com");
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 11).getValues();
for(var i = 0; i < values.length; i++){
var [title,,,,startTime,endTime,theDescription,theLocation,,,theGuests] = values[i];
if(title != "") {
var event = calendar.createEvent(title, startTime, endTime)
.setLocation(theLocation)
.setDescription(theDescription);
theGuests.split(",").forEach(function(e) {event.addGuest(e.trim())});
}
}
}
Шаблон 2:
В этом шаблоне используется Calendar API.
Модифицированный скрипт:
При использовании этого скрипта пожалуйста, включите Calendar API в расширенных сервисах Google .
function scheduleClass(){
var sheet = SpreadsheetApp.getActiveSheet();
var calendarId = "primary@group.calendar.google.com";
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 11).getValues();
for(var i = 0; i < values.length; i++){
var [title,,,,startTime,endTime,theDescription,theLocation,,,theGuests] = values[i];
if(title != "") {
var resource = {
start: {dateTime: startTime.toISOString()},
end: {dateTime: endTime.toISOString()},
summary: title,
description: theDescription,
location: theLocation,
attendees: theGuests.split(",").map(function(e) {return {email: e.trim()}})
};
Calendar.Events.insert(resource, calendarId);
}
}
}
Примечание:
- Над обоими модифицированными сценариями одинаковые результаты.
Ссылки:
Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.