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

如何通过Google Script获取Google Groups组成员的日历ID

解答

获取其他用户有效calendarId的方法

对于谷歌日历来说,用户的默认主日历ID和用户的谷歌账号邮箱完全一致,如果你需要访问对方的主日历,直接将对方的完整邮箱地址作为calendarId传入即可。
如果你需要获取对方非主日历的其他日历ID,可以通过以下方式操作:

  • 调用Calendar.CalendarList.list()方法拉取你当前账号有权限访问的所有日历列表,遍历返回结果中的id字段,结合日历名称、所有者邮箱等信息筛选出目标日历的ID
  • 如果你是谷歌Workspace域管理员,可通过域管理权限直接拉取域内所有用户的日历ID列表

入参正确但返回结果不符的排查方案

  • 首先确认当前运行脚本的账号,已经获得目标日历的至少「查看所有事件详情」权限,权限不足时接口只会返回基础忙闲信息甚至报错,不会返回完整事件内容
  • 核对传入的calendarId拼写是否正确,没有多余空格、符号错误或大小写偏差
  • 检查Calendar.Events.list方法的入参过滤规则:比如timeMin、timeMax的时间范围是否覆盖了目标事件的时间,是否添加了关键词过滤、参与者过滤等限制条件导致匹配结果不符合预期
  • 可以先在网页版谷歌日历中手动添加目标日历,确认你可以正常看到对应事件后再运行脚本调试,排除目标日历本身无对应事件的问题

代码示例

var TEAM_CALENDAR_ID = 'team_calender_id'
var GROUP_EMAIL = 'group_email@group.com';
var KEYWORDS = ['vacation']
var MONTHS_IN_ADVANCE = 3;

// 替换为目标用户的谷歌账号邮箱即可访问对方主日历
var TARGET_USER_CALENDAR_ID = 'user@yourdomain.com';

function listTargetUserNext10Events() {
  var now = new Date();
  var events = Calendar.Events.list(TARGET_USER_CALENDAR_ID, {
    timeMin: now.toISOString(),
    singleEvents: true,
    orderBy: 'startTime',
    maxResults: 10
  });
  // 后续事件处理逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:18:00