コード.gs
function get_schedules() { var target_id = "CALENDER_ID"; 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 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); } |
意訳この処理は以下を実行する target_idに取得したいカレンダーのIDを入れて target_dateを設定する(例ではnew Date()で現在日時を取得) target_idのカレンダーを取得して target_dateで指定した日付けの予定を取得する 取得した予定を入れる入れ物を用意する(例ではarrayという名) 取得した予定の数だけ以下を繰り返す 予定のタイトルを取得して 予定の開始日時を取得して 予定の終了日時を取得して 終了日時から開始日時を引いた時間を分で出して 予定の場所を取得して 開始日時をフォーマットして 終了日時をフォーマットして arrayに入れる すべての予定を取得したarrayをset_valuesに渡す この処理は以下を実行する 開いているシートを取得して データの入っている最終行を取得して その次の行を入力を開始する行に設定して 入力を開始する列を設定する(例では1列目を指定) 入力する行数はarrayの長さから取得して 入力する列数はarrayの中の1行内のデータ数を取得して 入力を開始する行, 入力を開始する列, 入力する行数, 入力する列数で範囲を指定して arrayのデータを入力する |
関連記事
参考
https://developers.google.com/apps-script/reference/calendar/calendar-app#getCalendarById(String)