使用谷歌脚本检查谷歌日历事件是否重复检查

时间:2015-10-02 17:36:30

标签: google-sheets google-calendar-api

我想用我的脚本来检查一个事件是否在重复。 是否有捷径可寻?

1 个答案:

答案 0 :(得分:0)

function eventRepetitions() {
  var events = CalendarApp
                 .getCalendarById("YOUR_EMAIL")
                 .getEvents(new Date(new Date().getTime() + (86400000)*0),
                            new Date(new Date().getTime() + (86400000)*90));

  var eventIDs = events.map(function(e,i,a) { return a[i].getId() });

  Logger.log(eventIDs);

  var eventID     = "ID_CHOSEN_FROM_eventIDs";
  var repetitions = eventIDs.filter(function(e,i,a) { return e == this },eventID).length;

  Logger.log(eventID + " repeats " +
             repetitions + " times in the specified interval.");
}

操作方法

  1. 输入您的电子邮件地址,而不是YOUR_EMAIL。加载您的日历。您可以通过更改' 0'来指定时间范围。和' 90'在getEvents方法中。他们控制未来/过去多少天寻找事件。您希望此范围大于您期望的事件重复间隔。
  2. 从指定范围内找到的所有事件中创建一系列ID。

  3. 运行该函数一次以填充并记录eventID。转到视图>记录以查看列表。如果您选择的搜索范围是在感兴趣的事件发生之前开始的,那么该事件的ID将是第一个。

  4. 复制您要查找的ID代替" ID_CHOSEN_FROM_eventIDs(此时可以注释掉' Logger.log(eventIDs);'行),然后运行功能再次。查看日志,他们会告诉您事件是否重复出现。

  5. 有很多方法可以改进此代码,使其更强大。例如,如果您首先传递一个您知道将要提供相关事件的开始日期,那么您可以查看它是否在该函数的一次运行中重复。