停止脚本复制事件 修改后的脚本:修改后的脚本:

我有一个脚本,用于将工作表中的事件添加到公共Google日历中。日历的目的是显示所有批准到特定站点的旅行。尽管出现错误,但我仍然收到错误消息(“找不到方法createEvent(string,string,string,object)。(第26行,文件“ CalendarEvent”)),脚本似乎确实起作用(我至少可以在日历上看到事件)。我遇到的问题是它正在创建重复事件。我看到了一个类似的问题可以解决此重复问题,但是,答案似乎并没有解决我的问题。到目前为止,这是我的脚本:

function CreateBPEvent() {
  var spreadsheet = Spreadsheetapp.getactiveSheet();
  var calendarId = spreadsheet.getRange('AB1').getvalue();
  var eventCal = CalendarApp.getcalendarById("###");
  var lr = spreadsheet.getLastRow();
  Logger.log(lr);
  var count = spreadsheet.getRange("Z3:AC"+lr+"").getvalues(); 
  for (x=0; x<count.length; x++) {
    var shift = count[x];
    var title = shift[0];
    var startTime = shift[1];
    var endTime = shift[2];
    var description = shift[3];   
    var options = {
      'description': description,}
    eventCal.createEvent(title,startTime,endTime,options);
  }
}

感谢您的帮助!

gift1226 回答:停止脚本复制事件 修改后的脚本:修改后的脚本:

  • 您不想在日历中创建重复的事件。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

模式1:

在这种模式下,当startTimeendTime相同时,不会创建重复的事件。

修改后的脚本:

修改脚本后,请进行以下修改。

从:
eventCal.createEvent(title,startTime,endTime,options);
至:
var events = eventCal.getEvents(startTime,endTime);
if (events.length == 0) {
  eventCal.createEvent(title,options);
}

模式2:

在这种模式下,当startTimeendTimetitle相同时,不会创建重复的事件。

修改后的脚本:

修改脚本后,请进行以下修改。

从:
eventCal.createEvent(title,{search: title});
if (events.length == 0) {
  eventCal.createEvent(title,options);
}

var events = eventCal.getEvents(startTime,endTime);
if (events.length == 0 || events.filter(function(e) {return e.getTitle() == title}).length == 0) {
  eventCal.createEvent(title,options);
}

注意:

  • 关于"Cannot find method createEvent(string,string,object). (line 26,file "CalendarEvent"的错误消息,createEvent(title,options)的参数分别是字符串,日期对象,日期对象和对象。所以请注意这一点。

参考:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。

本文链接:https://www.f2er.com/3113373.html

大家都在问