参考:https://developers.google.com/calendar/v3/reference/events/delete
错误:后缺少名称。操作员。 (第 131 行,文件“代码”)
function deleteEvent() {
for (var i = 1; i < datalastRow; i++) {
var calendarId = sheet.getRange('E2').getValue();
var delete_eventid = sheet.getRange(i + 1, 3).getValue()
var params = {
calendarId: calendarId,
eventId: delete_eventid,
};
calendar.events.delete(params, function(err) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
console.log('Event deleted.');
});
}
}
基本上,当我尝试保存代码时,
calendar.events.delete(params, function(err)) {
行会抛出错误,我不确定为什么会发生这种情况,因为我可以运行calendar.events.insert
并很好地创建事件,但它似乎不喜欢calendar.events.delete
。
编辑:我删除了第一个答案中提到的额外的“)”
如果您使用 Google Apps 脚本,这个怎么样?您可以通过deleteEvent()删除事件。 deleteEvent() 返回 void。所以我为此使用了 try-catch。
function deleteEvent() {
var calendarId = sheet.getRange('E2').getValue();
for (var i = 1; i < datalastRow; i++) {
var delete_eventid = sheet.getRange(i + 1, 3).getValue();
try {
CalendarApp.getCalendarById(calendarId).getEventById(delete_eventid).deleteEvent();
} catch(e) {
console.error("Error deleting event " + delete_eventid + " from calendar " + calendarId + ". Error: " + e);
}
}
}
此行有语法错误:
calendar.events.delete(params, function(err)) {
要删除的第二个参数应该是一个函数,但它应该如下所示:
calendar.events.delete(params, function(err) { ... })
区别在于第二个
)
包装了回调。
首先,从 service.events().list() 方法获取事件。
其次,访问上面的列表以到达“项目”。会有“id”。
第三,使用该“id”作为 eventId。
第四,使用该eventId进行删除。 event.delete 的函数是here
最重要的是,不要循环遍历事件来获取eventId。您必须通过“items”访问它才能获取eventId。