作为工作表文件中较大脚本的一部分,我正尝试删除Google日历上的事件,并使用新的结束时间对其进行重新制作。基本上,我正在处理工作单,在创建工作单时,它会基于创建日期和到期日向日历添加事件。我在此表单上有一个关闭函数,当我运行它时,它会向一个单元格和其他一些东西最终添加一个关闭日期。我想要的是根据创建日期和截止日期删除事件,然后将其替换为基于创建日期和截止日期的事件。或者可能只是将其全部删除,但尚未决定。这样,在到期日之前关闭的工单仍不会占用日历。我有日历,并且已经通过搜索开始日期,结束日期和事件名称找到了该事件。由于某种原因,我得到一个deleteEvent()不是函数错误。我已经使用相同的代码创建了一个事件,所以我不知道它是否与访问/权限有关。
我用来创建初始事件的代码。
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触发器运行,但只是尝试首先使其手动工作。感谢您的帮助,我确定它很简单,但是我只是在学习这些东西。
答案 0 :(得分:1)
events是一个数组,因此以下操作无效:
events.deleteEvent();
尝试以下操作删除第一个事件:
events[0].deleteEvent();
要删除所有事件,请尝试:
for(var i=0;i<events.length;i++) {
events[i].deleteEvent();
}