実現したいこと
面談予約が入ったときに、複数人いるアドバイザーのGoogleカレンダーから面談日時に対応できるメンバーを探し、
プルダウンで表示させたい
前提
複数人いるアドバイザーのGoogleカレンダーは自分のカレンダーに追加はしてあります
発生している問題・エラーメッセージ
プラダウンに選択肢としてカレンダーIDはでてくるのですが、予定がはいっている場合も選択肢にでてきてしまいます。
該当のソースコード
function findAvailablePerson() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var interviewDate = sheet.getRange("P:P").getValue(); // 面談日をP列から取得 var calendarIds = ["カレンダーID1","カレンダーID2","カレンダーID3","カレンダーID4","カレンダーID5"]; var availablePersons = []; for (var i = 0; i < calendarIds.length; i++) { var calendarId = calendarIds[i]; var calendar = CalendarApp.getCalendarById(calendarId); var events = calendar.getEvents(new Date(interviewDate), new Date(interviewDate)); // if (events.length === 0) { // イベントが存在しない場合、空いている人として追加 availablePersons.push(calendarId); } } // プルダウンリストを作成 var cell = sheet.getRange("S2:S"); var rule = SpreadsheetApp.newDataValidation().requireValueInList(availablePersons).build(); cell.setDataValidation(rule); }
0 コメント