Ich habe ein Formular, das die Wochentage erstellt, an denen ein Ereignis auftreten kann (Mon, Di, Mi, etc) - die Ausgabe gibt die Wochentage, Komma getrennt in einer Zelle in der Tabelle.Google Apps Script, propagate Komma getrennte Liste von Google Formulare Liste .onlyOnWeekdays() als Variablenaufrufe
Ich habe dann diese Zelle zu einem apps-Skript aufgerufen. Was ich tun muss, ist den Inhalt der Liste in .onlyOnWeekdays zu setzen, damit der Google Kalendereintrag, der erstellt wird, nur an den entsprechenden Wochentagen erscheint.
Jedes Mal, wenn ich versuche, eine Liste remote zu setzen, kann Array nicht in Wochentag konvertiert werden [].
Hier ist der Code
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);
};
};
{};
}
Jede Hilfe wäre sehr geschätzt.
Weder funktioniert. Ich habe Folgendes für Code versucht, um das Array zu erstellen ' var output = []; für (i in TagenArray) { var day = TageArray [i]; TageOutput = "CalendarApp.Weekday." + Tag; output.push (TageOutput); }; ' –