- 我想邀請組的成員日曆事件批量
- 如果我使用它的電子郵件組在事件分裂(請用組是正常的),但邀請沒有'驗證'...我可以在日曆界面手動驗證它們,但這不是一個解決方案。最後,即使客人的名字出現在活動中,他們也不會被邀請。如果我不手動「保存」此事件,則日誌顯示組僅作爲來賓,不是其用戶。
於是,我就單獨添加每一位客人使用下面的腳本,但我得到的,我不明白 的錯誤出現在第一事件成功邀請的變量數後的錯誤...有時只是一個,有時是2或3或5 ...隨機。添加多個客人谷歌日曆事件引發錯誤
這是在域上的谷歌應用程序教育帳戶上運行。我擁有管理員權限,我對日曆擁有所有權利。
下面是相關函數的代碼:(拿到小組成員,邀請他們在一段時間內的每個事件,打印出生成的日誌上一個新的工作表。)
function sendinvites(e) {
var calendar_name = e.parameter.calendar;
var email = calendar_name.toLowerCase()+'@insas.be';
var group = GroupsManager.getGroup(email);
var members = group.getAllMembers();
var startDate = new Date(e.parameter.start);
var endDate = new Date(e.parameter.end);
var Calendar = CalendarApp.getCalendarsByName(calendar_name);
var sheetName = calendar_name + "-du-" + Utilities.formatDate(e.parameter.start, FUS1, "dd-MMM-yyyy")
+ "-au-" + Utilities.formatDate(e.parameter.end, FUS1, "dd-MMM-yyyy")
//
var events = Calendar[0].getEvents(startDate , endDate);
if (events[0]) {
var eventarray = new Array();
var line = new Array();
line.push('Titre : '+calendar_name,'Début ','Fin','Localisation','Durée','invités');
eventarray.push(line);
for (i = 0; i < events.length; i++) {
if(events[i].getTitle().match('semaine n')=='semaine n'){continue}
var lr = logsheet.getLastRow(); // these lines are added here for test purpose only, to see where in the loop it fails... that's why I set values cell by cell !
logsheet.getRange(lr+1,1).setValue(events[i].getTitle()+'/'+Utilities.formatDate(events[i].getStartTime(), FUS1, "dd-MMM-yyyy"));
for(nn=0;nn<members.length;++nn){
logsheet.getRange(lr+1,nn+2).setValue(members[nn]);
events[i].addGuest(members[nn])
}
line = new Array();
line.push(events[i].getTitle());
line.push(Utilities.formatDate(events[i].getStartTime(), FUS1, "dd-MMM-yyyy")+' à ' +Utilities.formatDate(events[i].getStartTime(), FUS1, "HH:mm"));
line.push(Utilities.formatDate(events[i].getEndTime(), FUS1, "dd-MMM-yyyy")+' à ' +Utilities.formatDate(events[i].getEndTime(), FUS1, "HH:mm"));
line.push(events[i].getLocation());
line.push((events[i].getEndTime() - events[i].getStartTime())/3600000);
var invitelist='';
var list = events[i].getGuestList()
for(nn=0;nn<list.length;++nn){invitelist+=list[nn].getName()+', '}
line.push(invitelist)
eventarray.push(line);
}
Logger.log(eventarray)
var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
sheet.getRange(1,1,eventarray.length,eventarray[0].length).setValues(eventarray);
sheet.getRange(1,1,1,eventarray[0].length).setBackgroundColor('#ffffcc');
sheet.setColumnWidth(1, 450);sheet.setColumnWidth(2, 150);sheet.setColumnWidth(3, 150);sheet.setColumnWidth(4, 250);sheet.setColumnWidth(5, 75);sheet.setColumnWidth(6, 450);;
sheet.setFrozenRows(1)
} else {
var startstring = Utilities.formatDate(e.parameter.start, FUS1, "dd-MMM-yyyy");
var endstring = Utilities.formatDate(e.parameter.end, FUS1, "dd-MMM-yyyy");
Browser.msgBox('Aucun événement entre le ' + startstring + ' et le ' + endstring +' dans votre agenda :'+calendar_name);
}
var app = UiApp.getActiveApplication();
app.close();
return app;
}
所以我的問題是:這是正確的方法嗎?我是否應該通過電子郵件邀請該組,並且在這種情況下,我怎樣才能讓這個組自動分配到每個日曆中?
有沒有人遇到過這種情況?
我有種陷在這裏: -/
裁判:issue tracker 1906合併with 264詳見
您好,感謝您的回答,我試圖通過添加一個2000毫秒各addGuest之間的停頓,但我得到完全相同的結果...在可變數目的結果後出現錯誤。這就是說,我不明白這是怎麼被認爲是同時的......它是通過施工順序是不是?而且我還有其他腳本可以批量創建大量事件,而不會造成任何問題。 –