var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
var no=1; //No
var myCal=CalendarApp.getCalendarById('会議室のID'); //会議室の指定
var date='2018/07/01 00:00:00'; //対象月を指定
var startDate=new Date(date); //取得開始日
var endDate=new Date(date);
endDate.setMonth(endDate.getMonth()+1); //取得終了日 +n を変更すると期間変更可
var myEvents=myCal.getEvents(startDate,endDate); //カレンダーのイベントを取得
手順
会議室に設定されている予定の主催者が異動、退職してしまった際の対応です。
本人が変更、削除してくれれば良いのですが、システム担当が対応する場合でかつ、小規模な場合なので参考までに。
1.対象者が主催者となっている予定を洗い出す
- 後述のGASにて抽出可能
2.該当予定について、主催者を後任の担当者に変更
- 主催者のカレンダーから予定の編集画面を開く
- 予定の詳細の通知の下に主催者が表示されているのでその項目の▼をクリックし、後任の担当者を選択。参加者から元主催者を削除
主催者抽出用のGAS
function getCalendar() {
var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
var no=1; //No
var myCal=CalendarApp.getCalendarById('会議室のID'); //会議室の指定
var date='2018/07/01 00:00:00'; //対象月を指定
var startDate=new Date(date); //取得開始日
var endDate=new Date(date);
endDate.setMonth(endDate.getMonth()+1); //取得終了日 +n を変更すると期間変更可
var myEvents=myCal.getEvents(startDate,endDate); //カレンダーのイベントを取得
mySheet.getRange(1, 1).setValue('No');
mySheet.getRange(1, 2).setValue('予定名');
mySheet.getRange(1, 3).setValue('開始時間');
mySheet.getRange(1, 4).setValue('終了時間');
mySheet.getRange(1, 5).setValue('所要時間');
mySheet.getRange(1, 6).setValue('descrition');
mySheet.getRange(1, 7).setValue('主催者');
/* イベントの数だけ繰り返してシートに記録 */
for each(var evt in myEvents){
Logger.log(evt.getCreators());
mySheet.appendRow(
[
no, //No
evt.getTitle(), //イベントタイトル
//evt.getMyStatus(),//イベントの参加状態*****
evt.getStartTime(), //イベントの開始時刻
evt.getEndTime(), //イベントの終了時刻
"=INDIRECT(\"RC[-1]\",FALSE)-INDIRECT(\"RC[-2]\",FALSE)", //所要時間を計算
evt.getDescription(),
evt.getCreators()[0],
]
);
no++;
}
}