У меня есть форма, которая создает дни недели, в которые может произойти событие (пн, вт, ср и т. Д.) - вывод дает дни недели, разделенные запятыми в одной ячейке в электронной таблице.
Затем я вызвал эту ячейку в сценарий приложений. Что мне нужно сделать, так это поместить содержимое списка в .onlyOnWeekdays, чтобы создаваемая запись календаря Google появлялась только в соответствующие дни недели.
Каждый раз, когда я пытаюсь добавить список удаленно, я получаю сообщение Cannot convert Array to Weekday [].
Вот код
function Export_Techs_to_Calendar()
{
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 500; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 24);
var data = dataRange.getValues();
var cal = CalendarApp.getCalendarsByName("- Performance Venue Staffing")[0];
var startDateAndTime = 'Sat Aug 01 2016 00:00:00 GMT+0100 (BST)';
var endDateAndTime = 'Wed Aug 31 2017 23:59:59 GMT+0100 (BST)';
var events = cal.getEvents(new Date(startDateAndTime), new Date(endDateAndTime));
var mon = CalendarApp.Weekday.MONDAY;
var tue = CalendarApp.Weekday.TUESDAY;
var wed = CalendarApp.Weekday.WEDNESDAY;
var thur = CalendarApp.Weekday.THURSDAY;
var fri = CalendarApp.Weekday.FRIDAY;
var sat = CalendarApp.Weekday.SATURDAY;
var sun = CalendarApp.Weekday.SUNDAY;
//Delete Calendar Events
for (var i=0; i<events.length ;i++){
events[i].deleteEvent();
Utilities.sleep(200);
}
//Export Calendar Events day
for (i in data) {
var row = data[i];
var sDate = row[2];
var fDate = row[4];
var nDays = ((fDate - sDate)/(1000*60*60*24));
var days = row[22];
var repeat = CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekdays([days]).until(new Date(fDate));
var title = row[10]+" - "+row[6];
var cancel = row[19];
var des = "Description: "+row[7]+"\n"+"Organiser: "+row[8]+"\n"+"Course: "+row[9]+"\n"+"Number of Staff: "+row[11]+"\n"+"Staff Assigned: "+row[13];
if (title == ""){
title = 0};
{};
var loc = row[10];
var gue = row[8]+", "+row[12];
if (gue == "-"){gue = ""};
//multi-day event
if (((typeof title == 'string') && (sDate != "") && (cancel == "") && (nDays > 1))){
try{
cal.createAllDayEventSeries(title, new Date(sDate), repeat, {location:loc, description:des, guests:gue, sendInvites:true});
Utilities.sleep(200);
}
catch (e) {
cal.createAllDayEventSeries(title, new Date(sDate), repeat, {location:loc, description:des});
Utilities.sleep(200);
};
};
{};
}
Любая помощь будет принята с благодарностью.