如何获取日历事件全局状态?

时间:2013-06-24 22:02:02

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

这与Google脚本有关,可以访问日历活动信息

我正在寻找获取日历事件全局状态的方法?比如作为参加者状态的日历活动: 10位客人==> 4是,5月3日,1号,2号等待

我搜索过,但我发现只有通过访客获取状态的方法,然后实现代码才能单独计算全局状态。

有没有办法直接获得全球状态?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我碰巧编写了一个执行此操作的函数。以下是一个使用示例:

var summary = guestSummary(event.getGuestList());
Logger.log(summary);
...

[13-06-26 22:39:58:253 EDT] {respondedMaybe=0.0, awaiting=0.0, additional=0.0, respondedNo=0.0, respondedYes=1.0, invited=1.0}

我选择使用guest列表作为参数,以便同时支持CalendarEvent和CalendarEventSeries。

/**
 * Return an object enumerating guest list summary information.
 *
 * @param {EventGuest[]} guestlist Array of EventGuests.
 *
 * @returns {object} guest list summary
 */
function guestSummary( guestlist ) {
  var invited = guestlist.length;
  var respondedYes = 0;
  var respondedMaybe = 0;
  var respondedNo = 0;
  var awaiting = 0;
  var additional = 0;
  guestlist.forEach( function (guest) {
    switch (guest.getGuestStatus()) {
      case CalendarApp.GuestStatus.INVITED:
        awaiting++;
        break;
      case CalendarApp.GuestStatus.YES:
        respondedYes++;
        break;
      case CalendarApp.GuestStatus.NO:
        respondedNo++;
        break;
      case CalendarApp.GuestStatus.MAYBE:
        respondedMaybe++;
        break;
      default:
        break;
    }
    additional += guest.getAdditionalGuests();
  });
  return {
    invited : invited,
    respondedYes : respondedYes,
    respondedMaybe : respondedMaybe,
    respondedNo : respondedNo,
    awaiting : awaiting,
    additional : additional
  };
}