この例では
IDに @group.calendar.google.com が含まれているカレンダーのみを抽出して
その名前とIDをシートに書き出しています
コード.gs
function get_specific_calenders() { var calenders = CalendarApp.getAllCalendars(); var array = []; for (var i = 0; i < calenders.length; i++) { var id = calenders[i].getId(); if (id.match(/@group.calendar.google.com/)) { var name = calenders[i].getName(); 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); } |
意訳この処理は以下を実行する すべてのカレンダーを取得して 取得した結果を入れる入れ物を用意して 取得したカレンダーの数だけ以下を繰り返す カレンダーのidを取得して もしidに@group.calendar.google.comが入っていたら 名前を取得して arrayに追加する 入っていなければ何もせずに次のカレンダーを見る 取得した対象のカレンダーたちをset_valuesに渡す この処理は以下を実行する 開いているシートを取得して データの入っている最終行を取得して その次の行を入力を開始する行に設定して 入力を開始する列を設定する(例では1列目を指定) 入力する行数はarrayの長さから取得して 入力する列数はarrayの中の1行内のデータ数を取得して 入力を開始する行, 入力を開始する列, 入力する行数, 入力する列数で範囲を指定して arrayのデータを入力する |
関連記事
参考
https://developers.google.com/apps-script/reference/calendar/calendar-app#getAllCalendars()