1

さて、これがエラーの原因となっている私のコードです。終日イベントを追加しようとしている行のようです。日付のフォーマットの問題だと思いましたが、その下にコメントアウトした行はそれをテストするために作成されたもので、同じエラーが発生しました。だから私は困惑しています。エラーを修正するために何を変更する必要があるか、またはエラーが実際に何を意味するか。

    function cal1() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var startRow = 2;  // First row of data to process
      var numRows = 300;   // Number of rows to process
      var dataRange = sheet.getRange(startRow, 1, numRows, 26); //What data will be used
      var data = dataRange.getValues();
      var cal = CalendarApp.getCalendarsByName("Production Schedule"); //Gets the correct calendar
    for (i in data) {
      var row = data[i];
      var title = row[4];  // Column with Title
      var desc = row[3];       // Column with Description
      var date = row[8];   //Column with Date
      var loc = row[5];    //Column with Location
      cal.createAllDayEvent(title, date, {description:desc,location:loc});
      //cal.createEvent("Test", new Date("3/10/2010 14:30:00"), new Date("3/10/2010 14:30:00"));  
  }
 }
4

3 に答える 3

1
  var cal = CalendarApp.getCalendarsByName("Production Schedule"); //Gets the correct calendar

これにより、その名前のカレンダーの配列が得られます (カレンダーは名前を共有できるため、複数存在する可能性があるため)。これを試して:

  var cal = CalendarApp.getCalendarsByName("Production Schedule")[0]; //Gets the correct calendar

これにより、その名前の最初の (おそらく唯一の) カレンダーが作成されます。

于 2012-09-20T16:53:59.180 に答える
1

「date」変数が実際に使用できる日付であるかどうかわからない場合

  cal.createAllDayEvent(title, new Date(date), {description:desc,location:loc});

とはいえ、ロガーで確認するのは非常に簡単です

Logger.log(date)

フォームで日付値を返す必要がありますTue Sep 18 03:00:00 PDT 2012

于 2012-09-21T19:31:58.373 に答える
0

私は同じ問題を抱えていgetCalendarsByNameます。むしろ、私は使用getCalendarByIdしてうまく解決しました。ただし、カレンダー名には混乱やバグが発生する可能性があると思います。

次のようなカレンダー設定でカレンダー ID を見つけることができます。123xyz@group.calendar.google.com

スクリプトは次のようになります。

var cal = CalendarApp.getCalendarById("123xyz@group.calendar.google.com");
于 2012-12-16T05:20:04.917 に答える