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