0

複数のシートから Google カレンダーにイベントをプルできる Google スクリプトを作成しようとしていますが、重複で問題が発生しています。新しいイベントを作成する前に (更新するために) イベントを削除する必要があると考えていますが、「メソッド getEventsForDay(string) が見つかりません」というエラーが発生します。助言がありますか?

function pushToPreKCalendar(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Pre-K");
  var lastRow = sheet.getLastRow(); 
  var range = sheet.getRange(3,1,lastRow,100);
  var values = range.getValues();   
  var data = range.getValues();
  var cal1 = CalendarApp.getCalendarsByName("WDW FB")[0];
  var cal2 = CalendarApp.getCalendarsByName("WDW Latino FB")[0];
  var cal3 = CalendarApp.getCalendarsByName("WDW Pinterest")[0];
  for (i in data){ 
  var row = data[i];
  var title = row[0];
  var date = row[2];
  var desc = row[3];
  var cal = row[4];
  var events1 = cal1.getEventsForDay(date);
     for (var i=0; i<events1.length;i++){
     var ev1 = events1[i];
     Logger.log(ev1.getTitle());
     ev1.deleteEvent();
  }
  var events2 = cal2.getEventsForDay(date);
  for (var i=0; i<events2.length;i++){
    var ev2 = events2[i];
    Logger.log(ev2.getTitle());
    ev2.deleteEvent();
  }
  var events3 = cal3.getEventsForDay(date);
  for (var i=0; i<events3.length;i++){
    var ev3 = events3[i];
    Logger.log(ev3.getTitle());
    ev3.deleteEvent();
  }
        if (cal=="WDW FB")
          var newEvent = cal1.createAllDayEvent(title, date, {description:desc});
        if (cal=="WDW Latino FB")
          var newEvent = cal2.createAllDayEvent(title, date, {description:desc});
        if (cal== "WDW Pinterest")
          var newEvent = cal3.createAllDayEvent(title, date, {description:desc});
  }
}
4

1 に答える 1

1

問題は次の行で発生しているようです: var date = row[2];, dateis of type text, おそらく列には日付型の値がvar date = row[2];ありますが、テキスト文字列が返されるため、 の値をrow[2]日付型に変換してパラメータとして渡す必要がありますメソッドgetEventsForDay(date)

次のようなものを試してみると:

...
var events1 = cal1.getEventsForDay(new Date());
...

エラーは生成されません。

于 2013-10-30T20:29:01.670 に答える