G日历:搜索所有系列日期

问题描述 投票:0回答:1

如何使用 GScript 搜索我的所有系列约会并控制输出,以便仅显示已设置系列约会的约会?

我已经创建了一个脚本,但总是显示所有约会,但只应显示“设置约会”。

我在哪里犯了错误 - 或者谁可以给我举个例子来说明我陷入困境的地方?

谢谢

function getRecurringEvents() {
  var calendar = CalendarApp.getDefaultCalendar();
  var now = new Date();
  var oneYearFromNow = new Date(now.getFullYear() + 1, now.getMonth(), now.getDate());

  var events = calendar.getEvents(now, oneYearFromNow);
  var recurringEvents = events.filter(function(event) {
    return event.isRecurringEvent();
  });

  for (let i = 0; i < recurringEvents.length; i++) {
    Logger.log(recurringEvents[i].getTitle());
  } 
}
google-apps-script google-calendar-api
1个回答
0
投票

尝试:

function getRecurringEvents() {
  var calendar = CalendarApp.getDefaultCalendar();
  var now = new Date();
  var oneYearFromNow = new Date(now.getFullYear() + 1, now.getMonth(), now.getDate());

  var events = calendar.getEvents(now, oneYearFromNow);
  var masterEvents = new Set();

  // Filter recurring events and collect the series (master) events
  for (var i = 0; i < events.length; i++) {
    var event = events[i];
    if (event.isRecurringEvent()) {
      // Get the series (master) event
      var series = event.getSeries();
      if (!masterEvents.has(series.getId())) {
        masterEvents.add(series.getId());
        Logger.log(series.getTitle());
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.