Google apps script 停止脚本复制事件

Google apps script 停止脚本复制事件,google-apps-script,google-sheets,google-calendar-api,Google Apps Script,Google Sheets,Google Calendar Api,我有一个脚本,用于将工作表中的事件添加到公共谷歌日历中。日历的目的是显示到特定地点的所有批准旅行。尽管出现了一个错误(“找不到方法createEvent(string,string,string,object)。(第26行,文件“CalendarEvent”),但脚本似乎确实可以工作(我至少可以看到日历上的事件)。我遇到的一个问题是它创建了重复事件。我看到了一个解决此重复问题的类似问题,但是,答案似乎没有解决我的问题。以下是我目前的脚本: function CreateBPEvent() {

我有一个脚本,用于将工作表中的事件添加到公共谷歌日历中。日历的目的是显示到特定地点的所有批准旅行。尽管出现了一个错误(“找不到方法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);
  }
}
函数CreateBPEvent(){
var电子表格=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();
对于(x=0;x
  • 您不希望在日历中创建重复的事件
如果我的理解是正确的,那么这个答案呢?请把它看作是几种可能的答案之一

模式1: 在此模式中,当
startTime
endTime
相同时,不会创建重复事件

修改脚本: 修改脚本时,请按以下方式修改

发件人: 致: 模式2: 在此模式中,当
开始时间
结束时间
标题
相同时,不会创建重复事件

修改脚本: 修改脚本时,请按以下方式修改

发件人: 致: 或

注:
  • 关于
    “找不到方法createEvent(string,string,string,object)。(第26行,文件“CalendarEvent”
    createEvent(title,startTime,endTime,options)
    的参数分别是string,date对象,date对象和object。因此请注意这一点
参考资料:
如果我误解了你的问题,而这不是你想要的方向,我道歉。

  • 您不希望在日历中创建重复的事件
如果我的理解是正确的,那么这个答案呢?请把它看作是几种可能的答案之一

模式1: 在此模式中,当
startTime
endTime
相同时,不会创建重复事件

修改脚本: 修改脚本时,请按以下方式修改

发件人: 致: 模式2: 在此模式中,当
开始时间
结束时间
标题
相同时,不会创建重复事件

修改脚本: 修改脚本时,请按以下方式修改

发件人: 致: 或

注:
  • 关于
    “找不到方法createEvent(string,string,string,object)。(第26行,文件“CalendarEvent”
    createEvent(title,startTime,endTime,options)
    的参数分别是string,date对象,date对象和object。因此请注意这一点
参考资料:

如果我误解了你的问题,并且这不是你想要的方向,我道歉。

谢谢你的回答!我尝试了两种选择(我更喜欢具有唯一开始时间、结束时间和标题的方法),但是,我仍然收到相同的错误消息,并且它仍然在复制以前输入的事件。@Jamie感谢您的回复。对于由此带来的不便,我深表歉意。
的错误消息找不到方法createEvent(string,string,string,object)
,为了复制问题,需要确认电子表格。因此,您可以提供一份电子表格样本吗?当然,请删除您的个人信息。如果您能够合作解决您的问题,我很高兴。嗨,Tanaike,这是数据的副本()感谢您的帮助!@Jamie感谢您提供示例电子表格。我使用您提供的电子表格测试了脚本。但不幸的是,我无法复制您的
找不到方法createEvent(string,string,string,object)的问题
。我可以问一下错误的流程吗?这是由于我的技能不好。对此我深表歉意。感谢您的回复!我尝试了两种方法(我更喜欢具有唯一开始时间、结束时间和标题的方法),但是,我仍然收到相同的错误消息,并且它仍然在复制以前输入的事件。@Jamie感谢您的回复。对于由此带来的不便,我深表歉意。
的错误消息找不到方法createEvent(string,string,string,object)
,为了复制问题,需要确认电子表格。因此,您可以提供一份电子表格样本吗?当然,请删除您的个人信息。如果您能够合作解决您的问题,我很高兴。嗨,Tanaike,这是数据的副本()感谢您的帮助!@Jamie感谢您提供示例电子表格。我使用您提供的电子表格测试了脚本。但不幸的是,我无法复制您的
找不到方法createEvent(string,string,string,object)的问题
。我可以问一下错误的流程吗?这是因为我的技能差。对此我深表歉意。
eventCal.createEvent(title, startTime, endTime, options);
var events = eventCal.getEvents(startTime, endTime);
if (events.length == 0) {
  eventCal.createEvent(title, startTime, endTime, options);
}
eventCal.createEvent(title, startTime, endTime, options);
var events = eventCal.getEvents(startTime, endTime, {search: title});
if (events.length == 0) {
  eventCal.createEvent(title, startTime, endTime, options);
}
var events = eventCal.getEvents(startTime, endTime);
if (events.length == 0 || events.filter(function(e) {return e.getTitle() == title}).length == 0) {
  eventCal.createEvent(title, startTime, endTime, options);
}