我正在尝试将某些事件的“主”日历中事件的可见性详细信息从“忙碌”更改为“空闲”...这不会失败,但不起作用。
**重新创建:**
这将获得一天的活动,并将尝试将“忙碌”更改为“空闲”。
function test(){
var calendar = CalendarApp.getDefaultCalendar();
var startTime = new Date();
var endTime = new Date();
endTime.setDate(endTime.getDate() + 1);
var events = calendar.getEvents(startTime, endTime);
// Itera sobre cada evento encontrado.
for (var i = 0; i < events.length; i++) {
var event = events[i];
var eventTitle = event.getTitle();
var eventType = event.getEventType()
var calendarId = calendar.getId();
var eventIdOriginal = event.getId();
var eventId = eventIdOriginal.replace("@google.com","");
let originalEvent = Calendar.Events.get(calendarId, eventId);
//1. first try
originalEvent.transparency = "transparent";
//2. second try
var changes = { transparency: "transparent" };
try{
//Calendar.Events.update(originalEvent, calendarId, eventId,changes);
Calendar.Events.patch(changes,calendarId, eventId);
}catch(e){
Logger.log(e);
}
}
}
这不会产生任何异常,但这不起作用。活动继续像“忙碌”一样。
我想要这个,因为我想自定义我的可用时间以将我的日历分享给其他团队。
我尝试更改其他属性,例如颜色,效果很好。
你能帮我吗?
我需要将可见性详细信息从忙碌更改为空闲。就这样了。
我使用的是企业帐户。
据我了解,您想要做的是将主日历中已创建的事件的状态从
Busy
更改为 Free
。
这是代码的修改版本,可帮助您开始实现您想要的目标:
function test() {
var calendar = CalendarApp.getDefaultCalendar();
var calendarId = calendar.getId();
var startTime = new Date();
startTime.setHours(0, 0, 0, 0);
var endTime = new Date();
endTime.setHours(23, 59, 59, 999);
var events = calendar.getEvents(startTime, endTime);
var event = events.map(e => e.getId().replace("@google.com", ""));
var changes = {
transparency: "transparent"
};
event.forEach(id => {
Calendar.Events.patch(changes, calendarId, id);
});
}
注意:脚本将所有事件的状态从
更改为Busy
。如果您想在第一个事件中执行此操作,您可以使用:Free
function test() {
var calendar = CalendarApp.getDefaultCalendar();
var calendarId = calendar.getId();
var startTime = new Date();
startTime.setHours(0, 0, 0, 0);
var endTime = new Date();
endTime.setHours(23, 59, 59, 999);
var events = calendar.getEvents(startTime, endTime);
var event = events.map(e => e.getId().replace("@google.com", ""));
var changes = {
transparency: "transparent"
};
Calendar.Events.patch(changes, calendarId, event[0]);
}