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

时间:2019-03-06 15:34:07

标签: google-apps-script google-calendar-api

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

要创建的事件的ID(标题,开始,停止)

然后我可以对照现有事件的eventID进行检查,并添加,如果还不存在的话。 我认为,这比在添加新属性或继续

之前检查现有事件以匹配所有属性要快得多

2 个答案:

答案 0 :(得分:0)

我不认为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;

          }


    }
  }

答案 1 :(得分:0)

可以完成,但是需要一些工作。

默认情况下,事件ID是自动生成的。 However, you can generate custom ids for an event as long as they conform to Google's format requirements。因此,您必须自己管理这些事件ID的生成。

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

一旦您有了某种生成唯一ID的方法,就可以使用它直接通过ID获取事件,但是您必须使用Advanced Calendar Service(内置服务不允许按事件ID查找事件,但确实允许通过iCalUID查找。)