【GAS】Googleカレンダーの予定をスプレッドシートに展開する
月指定でGoogleカレンダーの予定をスプレッドシート上に展開する方法です。
完成形
まず完成形について。
こちらがGoogle Calendarの様子です。何件か予定が入っています。
それを以下のようにスプレッドシート上に列挙させることができます。Calendarアプリだけだと見にくいのでこうやって列挙すると自分の予定がひと目でわかります。あらかじめA1セルに対象の月を入力しておきます。GAS側でこれを読んで対象月を判断するので。
Google Calendar APIを有効にする
Google Calendar APIを有効にしましょう。スクリプトエディタの「サービス」の「+」をクリックすると追加するサービスが選べます。「Google Calendar API」を探して選択し、「追加」ボタンを押下することでAPIを通行にすることができます。
ソースコード
ソースコードがこちら。これを実行すると完成形で示したように予定が展開されます。
const sheet = SpreadsheetApp.getActiveSheet();
const calendar = CalendarApp.getDefaultCalendar();
var dt = sheet.getRange("A1").getValue();
var st = new Date(dt.getFullYear(), dt.getMonth(), 1);
var ed = new Date(dt.getFullYear(), dt.getMonth() + 1, 0);
var events = CalendarApp.getEvents(st, ed);
let r=5;
for (let i in events) {
sheet.getRange(r,1).setValue(events[i].getTitle());
sheet.getRange(r,2).setValue(events[i].getStartTime());
sheet.getRange(r,3).setValue(events[i].getEndTime());
r++;
}
スポンサーリンク


