在管理目录中查找和读取资源日历



>上下文
在预订酒店的表格 POST 中,我首先想检查我们的公寓是否有免费房间。我通过GSuite管理面板创建了资源日历(建筑物等(。

现在我正在用我在这个网站上找到的一些代码进行测试。它找到资源日历,我只需按名称过滤它们(以摆脱所有会议室(。但是现在我想"阅读"日历本身。但似乎resourceId不是相应资源日历的 ID。

如何检查资源日历中的可用性?

do {
var arguments = {
maxResults: 200,
pageToken: pageToken
}; 
calendars = AdminDirectory.Resources.Calendars.list("my_customer", arguments);
if (calendars.items && calendars.items.length > 0) {
for (var i = 0; i < calendars.items.length; i++) {
var calendar = calendars.items[i];
if (calendar.buildingId.substr(0, 9).toUpperCase() === "APARTMENT" ) {
Logger.log('YES %s (ID: %s) (%s),', calendar.resourceId, calendar.resourceName, calendar.buildingId);  
// 
// The code below doesn't work (null reference). But I would to do something like this.
//
var resourceCalendar = CalendarApp.getCalendarById(calendar.resourceId);
Logger.log("I found the following calendar %s ", resourceCalendar.getName() );
}
}
} else {
Logger.log('No calendars found.');
}
pageToken2 = calendars.nextPageToken;
} while (pageToken); 

我尝试了这段代码,它可以工作。

请注意,我使用电子邮件资源作为CalendarApp的ID

function myFunction() {
var pageToken;
do {
var arguments = {
maxResults: 200,
pageToken: pageToken
}; 
calendars = AdminDirectory.Resources.Calendars.list("my_customer", arguments);
if (calendars.items && calendars.items.length > 0) {
for (var i = 0; i < calendars.items.length; i++) {
var calendar = calendars.items[i];
Logger.log('ressource name : '+calendar.resourceName);  
//Logger.log('ressource data : '+JSON.stringify(calendar)+'n');// this is useful to see what we get  
var resourceCalendar = CalendarApp.getCalendarById(calendar.resourceEmail);
if(resourceCalendar){
Logger.log("I found the following calendar %s n", resourceCalendar.getName() );
}else{
Logger.log('ressource skipped- undefined ----------------');
}
}
}
} while (pageToken); 
}

最新更新