ノウハウ

2018年07月13日 11時09分
  • 【入退社対応】Googleカレンダー

AS
情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

手順

会議室に設定されている予定の主催者が異動、退職してしまった際の対応です。
本人が変更、削除してくれれば良いのですが、システム担当が対応する場合でかつ、小規模な場合なので参考までに。

1.対象者が主催者となっている予定を洗い出す

 - 後述のGASにて抽出可能

2.該当予定について、主催者を後任の担当者に変更

 - 主催者のカレンダーから予定の編集画面を開く

 - 予定の詳細の通知の下に主催者が表示されているのでその項目の▼をクリックし、後任の担当者を選択。参加者から元主催者を削除

主催者抽出用のGAS

  • 会議室の指定で1つずつ会議室のIDを指定し、保存→実行する必要があります。会議室が多い場合は会議室のIDを取得するGASを作って、以下のGASのID指定部分をリストから取得、かつ、繰り返すように改修できればいけそうな気がします。
  • 開いているスプレッドシートの最下行に会議室を指定し、保存→実行するたびに予定が追加されていきます。
  • 初回実行時にスプレッドシートへのアクセス許可がないエラーがでて、初回のみアクセス許可の作業を刷る必要があります。エラーメッセージをクリックして、画面とおりに進められばよいので特別な作業は必要ありません。

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++;
}
}

  

2018年07月13日 11時09分
AS

0件の回答があります