コード.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)