LANG SELRCT

コードを書く場所についてはこちら

2017年12月9日土曜日

Googleカレンダーで全てのカレンダーを取得する

参照できるすべてのカレンダーの名前とIDを取得するコードの例です


コード.gs
function get_calenders(){
  var calenders = CalendarApp.getAllCalendars();
  var array = [];
  for(var i = 0; i < calenders.length; i++){
    var name = calenders[i].getName();
    var id = calenders[i].getId();
    array.push([name, id]);
  }
  Logger.log(array);
}
意訳
この処理は以下を実行する
すべてのカレンダーを取得する
カレンダーの名前とidを入れる入れ物を用意しておく
カレンダーの数だけ以下を繰り返す
カレンダーの名前を取得して
カレンダーのidを取得して
arrayに入れる

最終的にすべてのカレンダーが入ったarrayをログに出す




おまけ


取得した名前とIDをシートに書き出す場合

setValuesを使って以下のようなコードで書き出すことができます


コード.gs
function get_calenders(){
  var calenders = CalendarApp.getAllCalendars();
  var array = [];
  for(var i = 0; i < calenders.length; i++){
    var name = calenders[i].getName();
    var id = calenders[i].getId();
    array.push([name, id]);
  }
  set_values(array);
}

function set_values(array){
  var sh = SpreadsheetApp.getActiveSheet();
  var last_row = sh.getLastRow();
  var start_row = last_row + 1;
  var start_col = 1;
  var num_rows = array.length;
  var num_cols = array[0].length;
  var range = sh.getRange(start_row, start_col, num_rows, num_cols);
  range.setValues(array); 
}


関連記事

setValuesを使う話


参考
https://developers.google.com/apps-script/reference/calendar/calendar-app#getAllCalendars()