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

问题描述 投票:2回答:2

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

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

然后,我可以根据现有事件的eventID检查它,如果还没有,则添加。我认为这比在添加新属性之前检查现有事件以匹配所有属性要快,或者只是继续前进

google-apps-script google-calendar-api
2个回答
0
投票

我不认为ID的工作方式与您认为的方式相同(作为其中信息的某种散列)。你能检查一下你想要的标题吗?我认为这就足够了。

这是一个让你入门的脚本,它会在接下来的20天内发现下一次“Sample Meeting”。您可以轻松地将范围缩小到一天,然后添加一个“其他”来创建新会议。

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;

          }


    }
  }

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)。

© www.soinside.com 2019 - 2024. All rights reserved.