非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【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++;
}
 

 

 

スポンサーリンク

 - Google Apps Script