google 日历删除事件 () 在 google 工作表脚本中不起作用
google calendar deleteEvent() wont work in google sheets script
作为 sheets 文件中较大脚本的一部分,我试图删除 google 日历上的事件并用新的结束时间重新制作它。基本上我正在处理工作订单 sheet,当我创建它时,它会根据创建日期和截止日期向日历添加一个事件。我在这个表格上有一个关闭功能,当我 运行 时,它最终会向单元格和其他一些东西添加一个关闭日期。我想要的是删除基于创建日期和截止日期的事件,并将其替换为基于创建日期和关闭日期的事件。或者可能只是一起删除它,还没有决定。这样,在截止日期之前关闭的工单就不会再占用日历上的空间。我调用了日历,并通过搜索开始日期、结束日期和事件名称找到了事件。出于某种原因,我收到 deleteEvent() is not a function 错误。我已经用相同的代码创建了一个事件,所以我不知道它是否与 access/permission.
有关
我用来创建初始事件的代码。
function Schedule() {
var ssTemplate = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet
//var ssTemplate = SpreadsheetApp.openById('1IYSamJpGZbgFyWMTzzFBfLaqV-9Jj3_jd8fW71VSZJA');
//var sheetTemplate = ssTemplate.getSheetByName("Sheet2");
var sheetTemplate = ssTemplate.getActiveSheet();
var eventname = sheetTemplate.getRange("C4").getValue();
var eventstart = sheetTemplate.getRange("E3").getValue();
var eventstop = sheetTemplate.getRange("E4").getValue();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
eventCal.createAllDayEvent(eventname, eventstart, eventstop);
尝试删除事件的代码
函数 StopSchedule() {
var ssTemplate = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet
//var ssTemplate = SpreadsheetApp.openById('1IYSamJpGZbgFyWMTzzFBfLaqV-9Jj3_jd8fW71VSZJA');
//var sheetTemplate = ssTemplate.getSheetByName("Sheet2");
var sheetTemplate = ssTemplate.getActiveSheet();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
var eventname = sheetTemplate.getRange("C4").getValue();
var eventstart = sheetTemplate.getRange("E3").getValue();
var eventstop = sheetTemplate.getRange("E4").getValue();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
var events = eventCal.getEvents(eventstart, eventstop,
{search: eventname});
Logger.log(events + 'event name'+ eventname + 'start time' + eventstart + 'stop time'+ eventstop);
events.deleteEvent();
我不知道我做错了什么。我登录以确保我找到了该事件,而且我似乎找到了。最后,这将由安装的 onEdit 触发器 运行 但只是试图让它首先手动工作。感谢您的帮助,我确信它很简单,但我只是在学习这些东西。
events 是一个数组,因此以下将不起作用:
events.deleteEvent();
尝试按照以下方法删除第一个事件:
events[0].deleteEvent();
要删除所有事件,请尝试:
for(var i=0;i<events.length;i++) {
events[i].deleteEvent();
}
作为 sheets 文件中较大脚本的一部分,我试图删除 google 日历上的事件并用新的结束时间重新制作它。基本上我正在处理工作订单 sheet,当我创建它时,它会根据创建日期和截止日期向日历添加一个事件。我在这个表格上有一个关闭功能,当我 运行 时,它最终会向单元格和其他一些东西添加一个关闭日期。我想要的是删除基于创建日期和截止日期的事件,并将其替换为基于创建日期和关闭日期的事件。或者可能只是一起删除它,还没有决定。这样,在截止日期之前关闭的工单就不会再占用日历上的空间。我调用了日历,并通过搜索开始日期、结束日期和事件名称找到了事件。出于某种原因,我收到 deleteEvent() is not a function 错误。我已经用相同的代码创建了一个事件,所以我不知道它是否与 access/permission.
有关我用来创建初始事件的代码。
function Schedule() {
var ssTemplate = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet
//var ssTemplate = SpreadsheetApp.openById('1IYSamJpGZbgFyWMTzzFBfLaqV-9Jj3_jd8fW71VSZJA');
//var sheetTemplate = ssTemplate.getSheetByName("Sheet2");
var sheetTemplate = ssTemplate.getActiveSheet();
var eventname = sheetTemplate.getRange("C4").getValue();
var eventstart = sheetTemplate.getRange("E3").getValue();
var eventstop = sheetTemplate.getRange("E4").getValue();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
eventCal.createAllDayEvent(eventname, eventstart, eventstop);
尝试删除事件的代码 函数 StopSchedule() {
var ssTemplate = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet
//var ssTemplate = SpreadsheetApp.openById('1IYSamJpGZbgFyWMTzzFBfLaqV-9Jj3_jd8fW71VSZJA');
//var sheetTemplate = ssTemplate.getSheetByName("Sheet2");
var sheetTemplate = ssTemplate.getActiveSheet();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
var eventname = sheetTemplate.getRange("C4").getValue();
var eventstart = sheetTemplate.getRange("E3").getValue();
var eventstop = sheetTemplate.getRange("E4").getValue();
var eventCal =
CalendarApp.getCalendarById("c_4um01s3eqvq7d5kqi0ga4i1098@group.calendar.google.com") ;
var events = eventCal.getEvents(eventstart, eventstop,
{search: eventname});
Logger.log(events + 'event name'+ eventname + 'start time' + eventstart + 'stop time'+ eventstop);
events.deleteEvent();
我不知道我做错了什么。我登录以确保我找到了该事件,而且我似乎找到了。最后,这将由安装的 onEdit 触发器 运行 但只是试图让它首先手动工作。感谢您的帮助,我确信它很简单,但我只是在学习这些东西。
events 是一个数组,因此以下将不起作用:
events.deleteEvent();
尝试按照以下方法删除第一个事件:
events[0].deleteEvent();
要删除所有事件,请尝试:
for(var i=0;i<events.length;i++) {
events[i].deleteEvent();
}