You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script获取系列活动的即将举办日期?

解决Google Calendar系列活动下一场日期获取问题

核心解决思路

要获取你参与的他人创建的系列活动下一场日期,关键是先拿到EventSeries对象,再通过它提取未来的活动实例信息。

具体操作步骤

  1. 准确获取系列活动ID并拿到EventSeries对象
    你用getEventSeriesById的方向是对的,但要确保传入的是系列活动的ID(不是单场活动实例的ID)。如果之前的ID获取有误,可通过两种方式确认:

    • 直接打开日历里的系列活动,查看URL中的eid=参数,这就是系列活动ID;
    • 用getEvents筛选你参与的活动,再识别系列活动:
      // 筛选未来30天内你参与的活动
      const start = new Date();
      const end = new Date(start.getTime() + 30*24*60*60*1000);
      const events = CalendarApp.getDefaultCalendar().getEvents(start, end, {
        attendees: Session.getActiveUser().getEmail()
      });
      
      // 遍历找到系列活动
      for (const event of events) {
        if (event.isRecurringEvent()) {
          const series = event.getEventSeries();
          // 拿到series后进入下一步处理
          break;
        }
      }
      
  2. 提取下一场活动的日期时间
    拿到EventSeries对象后,用getNextEvent()方法直接获取下一场活动实例,再提取时间信息:

    const seriesId = "你的系列活动ID";
    const series = CalendarApp.getDefaultCalendar().getEventSeriesById(seriesId);
    const nextEvent = series.getNextEvent();
    
    if (nextEvent) {
      const startTime = nextEvent.getStartTime();
      const endTime = nextEvent.getEndTime();
      // 此处可将startTime/endTime用于后续业务逻辑
      console.log("下一场活动开始时间:" + startTime);
    } else {
      console.log("该系列活动暂无未来场次");
    }
    

常见问题说明

  • 你之前用Utilities.newBlob解码拿到的可能是单场活动实例ID,和系列活动ID格式不同,导致无法获取系列信息;
  • getEvents会返回系列活动的单场实例,通过isRecurringEvent()可判断是否属于系列活动,进而拿到对应的EventSeries;
  • 作为活动参与者,只要你能在日历中看到该系列活动,就有权限通过CalendarApp获取这些信息,无需额外权限。

内容的提问来源于stack exchange,提问作者Solana_Station

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:45:26