Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在将事件从google工作表添加到日历之前,请检查事件是否存在_Google Apps Script_Google Calendar Api - Fatal编程技术网

Google apps script 在将事件从google工作表添加到日历之前,请检查事件是否存在

Google apps script 在将事件从google工作表添加到日历之前,请检查事件是否存在,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,我有一个脚本,可以从工作表中更新日历。 是否有一种方法可以获取我将添加到日历中的事件的eventID(如果该事件不存在) 要创建的事件的ID是什么(标题、开始、停止) 然后,我可以对照现有事件的EventID进行检查,并添加(如果还没有)。 我认为这比在添加新属性之前检查现有事件是否与所有属性匹配要快,或者只需继续操作我不认为ID的工作方式与您似乎认为的方式相同(就像它们内部信息的某种散列)。你能查一下你想要的书名的日期吗?我想那就足够了 这是一个让您开始的脚本,它将在接下来的20天内查找下一次

我有一个脚本,可以从工作表中更新日历。 是否有一种方法可以获取我将添加到日历中的事件的eventID(如果该事件不存在)

要创建的事件的ID是什么(标题、开始、停止)

然后,我可以对照现有事件的EventID进行检查,并添加(如果还没有)。
我认为这比在添加新属性之前检查现有事件是否与所有属性匹配要快,或者只需继续操作

我不认为ID的工作方式与您似乎认为的方式相同(就像它们内部信息的某种散列)。你能查一下你想要的书名的日期吗?我想那就足够了

这是一个让您开始的脚本,它将在接下来的20天内查找下一次“示例会议”。您可以轻松地将范围缩小到一天,然后添加创建新会议的“else”

function insertItem() {


      var fromDate = new Date(); //This is Today
      var toDate = new Date();
      toDate.setDate(toDate.getDate()+20);
      Logger.log("From "+fromDate+" to "+toDate);
   var calendar = CalendarApp.getDefaultCalendar();
  var events = calendar.getEvents(fromDate, toDate);


  for(var i=0; i<events.length;i++)
    {
      var ev = events[i];
      var title = calendar.getEventSeriesById(ev.getId()).getTitle();


      if (title.indexOf("Sample Meeting")>-1){
        var start = ev.getStartTime();
        Logger.log("Found Team Meeting");

          var id = ev.getId();
          var date = ev.getStartTime();
          var desc = ev.getDescription();


          return;

          }


    }
  }
函数插入项(){
var fromDate=new Date();//今天
var toDate=新日期();
toDate.setDate(toDate.getDate()+20);
Logger.log(“从“+fromDate+”到“+toDate”);
var calendar=CalendarApp.getDefaultCalendar();
var events=calendar.getEvents(fromDate,toDate);
对于(变量i=0;i-1){
var start=ev.getStartTime();
Logger.log(“发现团队会议”);
var id=ev.getId();
var date=ev.getStartTime();
var desc=ev.getDescription();
返回;
}
}
}

这是可以做到的,但需要做一些工作

默认情况下,事件ID是自动生成的。因此,您必须自己管理这些事件ID的生成

您必须确保id是唯一的,因此您可能希望它基于与事件相关的输入组合


一旦您有了生成唯一id的方法,您可以使用它直接按id获取事件,但您必须使用(内置服务不允许按事件id查找,但允许按iCalUID查找)。

谢谢-我错误地认为id是从输入数据生成的,您是对的。因此,检查标题/时间/内容将是一种方法