GASを使ってGoogleカレンダーの予定をスプレッドシートに取り込む


今回はタイトル通り、
GASを使ってGoogleカレンダーの予定をスプレッドシートに取り込む方法を紹介します!

以下様々なGASの記事を紹介してます!
https://bzbot.work/

紹介記事

今回紹介している記事は以下です!
https://bzbot.work/2019/02/20/gas-calendar/

GAS
function getCal() {

  //カレンダーIDを指定して、カレンダーを取得
  var calendar = CalendarApp.getCalendarById('********************');

  //対象の日付を範囲指定
  var date = '2019/01/01'; 
  //この時はまだfrom,end両方に変数dateで指定した日付が入っている
  var from= new Date(date);
  var end = new Date(date);
  //月を指定するときは必ず大文字のMMを指定します(半角mmだとminutesを指してしまう)
  Logger.log('from:' + Utilities.formatDate( from, 'Asia/Tokyo', 'yyyy-MM-dd'));
  Logger.log('end:' + Utilities.formatDate( end, 'Asia/Tokyo', 'yyyy-MM-dd'));


  //endのMonthm(月)に+1をして翌月を指定
  end.setMonth(end.getMonth()+1);
  Logger.log('== setMonth、getMonthでendに+1ヶ月後 =====');
  Logger.log('from:' + Utilities.formatDate( from, 'Asia/Tokyo', 'yyyy-MM-dd'));
  Logger.log('end:' + Utilities.formatDate( end, 'Asia/Tokyo', 'yyyy-MM-dd'));

  //getEventsで取得したいカレンダーの始まりと終わりを指定して引数にセット
  var events = calendar.getEvents(from, end);


  //アクティブなシートを取得
  var sheet = SpreadsheetApp.getActiveSheet();

  //ヘッダ行に入る値を指定(誤って削除しても都度指定)
  sheet.getRange('A'+(1)).setValue('タイトル');
  sheet.getRange('B'+(1)).setValue('開始時刻');
  sheet.getRange('C'+(1)).setValue('終了時刻');
  sheet.getRange('D'+(1)).setValue('所要時間');
  sheet.getRange('E'+(1)).setValue('詳細');
  sheet.getRange('F'+(1)).setValue('住所');

  //eventsに入っている要素の数だけ実行
  for (var i = 0; i < events.length; i++) {
    var title = events[i].getTitle();
    var startTime = events[i].getStartTime();
    var endTime = events[i].getEndTime();
    var duration = (endTime - startTime) /(1000*60)/(60);
    var detail = events[i].getDescription();
    var location = events[i].getLocation();

    //取得した値をスプレッドシートに反映
    sheet.getRange('A'+(i+2)).setValue(title);
    sheet.getRange('B'+(i+2)).setValue(startTime).setNumberFormat('yyyy/mm/dd hh:mm');
    sheet.getRange('C'+(i+2)).setValue(endTime).setNumberFormat('yyyy/mm/dd hh:mm');
    sheet.getRange('D'+(i+2)).setValue(duration);
    //sheet.getRange('E'+(i+2)).setValue(detail);
    sheet.getRange('F'+(i+2)).setValue(location);
  }
}

まずはじめにカレンダーIDを取得します。

GAS
var calendar = CalendarApp.getCalendarById('********************');

取得方法は以下部分から可能です。

図1

図2