LoginSignup
0
0

More than 1 year has passed since last update.

GoogleSpreadsheetのデータをGoogleCalendarに登録する

Posted at

いるいろ苦労しながら、とりあえず作ったので世の中に出したかった。

/*
  このコード、動くぞ!
 */

function createcalevent() {


  var spreadsheet = SpreadsheetApp.openById('xxxxxxxx'); //スプレッドシートID
  var sheet = spreadsheet.getSheetByName('cal'); // シート名
  let calendar = CalendarApp.getCalendarById('xxx@google.com'); // アカウント
  let rowmax = sheet.getLastRow();

  console.log('rowmax',rowmax);
  for(var i = 2; i < rowmax+1; i++) {
    //getrange()の行列番号は1スタート
    let yyyy = sheet.getRange(i,4,1,1).getValue(); //なんかここだけletだった。
    var mm = sheet.getRange(i,5,1,1).getValue()-1;
    var dd = sheet.getRange(i,6,1,1).getValue();
    var eventday = new Date(yyyy,mm,dd,0,0,0,0);
        // Dateの月は1月がゼロ扱い。そういう仕様。
        // だから、var mm のところで -1 してる。

    var summary   = sheet.getRange(i,7,1,1).getValue();
    var location  = sheet.getRange(i,8,1,1).getValue();
    var description  = sheet.getRange(i,9,1,1).getValue();
    var option = {
        'location': sheet.getRange(i,8,1,1),
        'description':sheet.getRange(i,9,1,1)
      };
    if(summary != '') {
      console.log(eventday);
      console.log(summary,location,description);   
      var event = calendar.createEvent(summary,eventday,eventday,option);
                  // これは、getCalendarById()を使うことでエラーが出なくなる。
    }
  }
}

↓こういう表をつくっておく。
image.png

とりあえずは、うまく動きました。良かったです。
いろいろなサイトを参考にしましたが、記録取れなかったので記載できません。
参考にしたサイトを作成した方、ありがとうございます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0