この例では
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()