これまでGoogle Apps Scriptからの連携として、主にスプレッドシートやFusion Tables、Google Analyticsについてご紹介してきましたが、今回はGoogleカレンダーとの連携方法についてご紹介しようと思います。
GoogleカレンダーはGoogleから提供されるサービスの中でも比較的利用されていると思います。業務で利用されている方も少なくないのではないでしょうか?
では、早速Google Apps Scriptのプロジェクトを起動し、次のコードを実行してみてください。
function myFunction() {
var cal = CalendarApp.getDefaultCalendar();
var startDate = new Date("2015/7/13");
var endDate = new Date("2015/7/18");
var events = cal.getEvents(startDate, endDate);
for(var index in events) {
Logger.log(events[index].getTitle());
Logger.log(events[index].getStartTime());
Logger.log(events[index].getEndTime());
}
}
※1 Google Apps Scriptのプロジェクト作成方法は過去のブログ("Google Apps Scriptを使う準備"のあたり)をご参照ください。var cal = CalendarApp.getDefaultCalendar();
var startDate = new Date("2015/7/13");
var endDate = new Date("2015/7/18");
var events = cal.getEvents(startDate, endDate);
for(var index in events) {
Logger.log(events[index].getTitle());
Logger.log(events[index].getStartTime());
Logger.log(events[index].getEndTime());
}
}
※2 "startDate"および"endDate"は、取得したい日付の範囲に応じて変更してください。
実行が終わったら、ログを確認してみましょう。
指定した期間内でスケジュールしていた予定の名前、予定の開始日時、予定の終了日時が出てきています。
コードの中身を簡単に説明すると、1行目の"var cal = CalendarApp.getDefaultCalendar()"で連携先のカレンダーを指定しています。"getDefaultCalendar"とあるように、ユーザのデフォルトのカレンダー(Googleカレンダーを開いたとき、最初に開いているカレンダー)を連携先にしています。
ちなみにカレンダーのIDやカレンダーの名前と言った情報を元に、他のカレンダーを連携先に指定することもできます。その場合は"getDefaultCalendar"に代わって、別のメソッドを利用することになりますが、今回は割愛します。気になる方は、Google Apps Scriptのリファレンスをご参照ください。
5行目の"var events = cal.getEvents(startDate, endDate);"で、実際にカレンダーに入っている予定の情報を全て取得しています。(あくまで"startDate"~"endDate"の範囲内のですが)
そして7~11行目で取得した予定の情報から、予定の名前、予定の開始日時、予定の終了日時をログに出力させています。
もちろん、"予定の情報"は予定の名前以外に、様々な情報を持っています。予定の開始時刻や終了時刻、自分以外の予定の参加者(ゲスト)、予定に書いた説明など、"予定"として作成したときに入力したデータなら、取得することが可能です。
逆にGoogle Apps Scriptを使って、予定の情報を書き換えることもできます。取得に比べると用途が限られそうですが、自動で予定を入れたい場合などに使えるでしょうか。
今回は触り程度でしたが、次回はGoogleカレンダーの情報を元に、作業の実績時間を表にして、スプレッドシートへ出力してみようと考えています。
イメージ図
企業に勤めている方は、何の作業にどれだけ時間を使ったか、報告を求められることが多いと思いますが、(Googleカレンダーに予定と実績を入れておくことで)後から時間を計算する手間を省くことを目標にします。
0 件のコメント:
コメントを投稿