コード.gs
function get_schedules() { var email = Session.getActiveUser().getEmail(); var target_id = email; var target_date = new Date(); var calender = CalendarApp.getCalendarById(target_id); var schedules = calender.getEventsForDay(target_date); var array = []; for (var i=0; i < schedules.length; i++) { var title = schedules[i].getTitle(); var start_time = schedules[i].getStartTime(); var end_time = schedules[i].getEndTime(); start_time = Utilities.formatDate(start_time, 'Asia/Tokyo', 'yyyy/MM/dd/HH:mm'); end_time = Utilities.formatDate(end_time, 'Asia/Tokyo', 'yyyy/MM/dd/HH:mm'); var location = schedules[i].getLocation(); array.push([title, start_time, end_time, location]); } Logger.log(array); } |
意訳.gsこの処理は以下を実行する スクリプトを実行しているユーザのemailアドレスを取得して target_idに入れる target_dateを設定する(例ではnew Date()で現在日時を取得) target_idのカレンダーを取得して target_dateで指定した日付けの予定を取得する 取得した予定を入れる入れ物を用意する(例ではarrayという名) 取得した予定の数だけ以下を繰り返す 予定のタイトルを取得して 予定の開始日時を取得して 予定の終了日時を取得して 開始日時をフォーマットして 終了日時をフォーマットして 予定の場所を取得して arrayに入れる すべての予定を取得したarrayをログに出す |
おまけ
予定をシートに書き出す場合
以下のコードの例では
開始時間と終了時間から予定時間を分で計算して出して
開催場所も取得しています
コード.gs
function get_schedules() { var email = Session.getActiveUser().getEmail(); var target_id = email; var target_date = new Date(); var calender = CalendarApp.getCalendarById(target_id); var schedules = calender.getEventsForDay(target_date); var array = []; for (var i=0; i < schedules.length; i++) { var title = schedules[i].getTitle(); var start_time = schedules[i].getStartTime(); var end_time = schedules[i].getEndTime(); var duration = (end_time - start_time) / (1000 * 60); var location = schedules[i].getLocation(); start_time = Utilities.formatDate(start_time, 'Asia/Tokyo', 'yyyy/MM/dd-HH:mm') end_time = Utilities.formatDate(end_time, 'Asia/Tokyo', 'yyyy/MM/dd-HH:mm'); array.push([title, start_time, end_time, (duration + "min"), location]); } set_values(array); } function set_values(array){ var sh = SpreadsheetApp.getActiveSheet(); var last_row = sh.getLastRow(); var row = last_row + 1; var range = sh.getRange("A" + row + ":E" + (array.length + last_row)); range.setValues(array); } |
おまけ2
指定した日付けの予定を取得したい場合
var target_date = new Date();
のところで
var target_date = new Date("2017/12/31");
などと日付けを指定すると
その日の予定を取得できます
補足
共有されている他のユーザのカレンダーを取得する場合は、そのユーザのカレンダーを追加して、そのIDを設定すると取得できます
他のユーザーの Google カレンダーを追加する
https://support.google.com/calendar/answer/37100?co=GENIE.Platform%3DDesktop&hl=ja
参考
https://developers.google.com/apps-script/reference/calendar/