返回顶部
c

calendar-setup日历设置向导

Step-by-step wizard for connecting an owner's Google Calendar to their OpenClaw PA agent, including granting write permissions. Use when: setting up calendar access for the first time, troubleshooting calendar connection issues, fixing read-only calendar access, re-authenticating after permission errors, or handling multiple calendar accounts (work + personal). Works with any LLM model.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.1
安全检测
已通过
142
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

calendar-setup

日历设置技能

最低模型要求

任何能够遵循编号步骤的模型。

核心概念

涉及两个账户:

  • - 代理邮箱 — PA自己的Google账户(例如 agent@agentdomain.com)
  • 所有者邮箱 — 人类的Google账户(例如 owner@company.com)

代理需要访问所有者的日历。这是两个独立的Google账户。OpenClaw仪表盘上的日历已连接状态反映的是代理自己的日历——而非所有者的。请明确验证写入权限。



步骤1 — 所有者共享日历

所有者在Google日历中执行此操作(而非代理):

  1. 1. 以所有者身份打开 calendar.google.com
  2. 在左侧边栏中找到主日历(通常是他们的名字)
  3. 点击三点菜单 → 设置和共享
  4. 与特定人员共享下 → 点击 + 添加人员
  5. 输入代理邮箱
  6. 将权限设置为对事件进行更改 — 而非查看所有活动详情(此为只读权限)
  7. 点击发送

✅ 完成。代理会收到一封邮件确认通知——代理端暂时无需任何操作。

如果所有者找不到日历: 在侧边栏中向下滚动到其他日历。

如果共享被阻止: 所有者的组织可能限制了外部共享。他们需要请求IT管理员允许共享。



步骤2 — 代理进行身份验证

代理运行:

bash

将所有者账户添加到gog


gog auth add owner@company.com --services gmail,calendar,drive,contacts

验证已添加

gog auth list

gog auth list 的预期输出:

owner@company.com [gmail, calendar, drive, contacts]

如果在权限更改或令牌过期后需要重新验证:
bash
gog auth remove owner@company.com
gog auth add owner@company.com --services gmail,calendar,drive,contacts

如果找不到 gog: 检查PATH或通过您的OpenClaw发行版重新安装。

如果OAuth失败并显示访问被阻止: 所有者必须在Google账户 → 安全 → 第三方应用中允许访问。



步骤3 — 测试写入权限

bash

生成时间戳(适用于Linux和macOS)


START=$(date -u -d +1 hour +%Y-%m-%dT%H:%M:%SZ 2>/dev/null \
|| date -u -v+1H +%Y-%m-%dT%H:%M:%SZ)
END=$(date -u -d +2 hours +%Y-%m-%dT%H:%M:%SZ 2>/dev/null \
|| date -u -v+2H +%Y-%m-%dT%H:%M:%SZ)

在所有者日历中创建测试事件

GOG_ACCOUNT=owner@company.com gog calendar create primary \ --summary PA设置测试 — 请删除我 \ --start $START \ --end $END

检查所有者的Google日历。测试事件应在30秒内出现。

验证后删除:
bash

使用上述创建命令输出中的EVENT_ID


GOGACCOUNT=owner@company.com gog calendar delete primary EVENTID


常见问题及修复

仪表盘显示已连接但代理无法写入

原因: 仪表盘反映的是代理自己的日历,而非所有者的。

修复:

  1. 1. 确认所有者已与代理邮箱共享了日历(步骤1)
  2. 确认代理已为所有者账户运行了 gog auth add(步骤2)
  3. 在所有命令中始终使用 GOG_ACCOUNT=owner@company.com



权限不足错误

原因: 日历以只读权限共享。

修复: 所有者返回步骤1并将权限更改为对事件进行更改。



令牌已过期或身份验证失败

bash
gog auth remove owner@company.com
gog auth add owner@company.com --services gmail,calendar,drive,contacts



多个日历(工作 + 个人)

bash

添加两个账户


gog auth add work@company.com --services calendar
gog auth add personal@gmail.com --services calendar

查看每个账户有哪些日历

GOG_ACCOUNT=work@company.com gog calendar list GOG_ACCOUNT=personal@gmail.com gog calendar list

使用特定的日历ID(来自列表输出)而不是primary

GOGACCOUNT=work@company.com gog calendar create CALENDARID \ --summary 会议 \ --start 2026-04-02T10:00:00+00:00 \ --end 2026-04-02T11:00:00+00:00

macOS date命令

bash

Linux:使用 -d


date -u -d +1 hour +%Y-%m-%dT%H:%M:%SZ

macOS:使用 -v

date -u -v+1H +%Y-%m-%dT%H:%M:%SZ

实用命令

bash

列出所有已验证的账户


gog auth list

列出所有者的日历

GOG_ACCOUNT=owner@company.com gog calendar list

列出事件(未来7天)

GOG_ACCOUNT=owner@company.com gog calendar events primary \ --from $(date -u +%Y-%m-%dT%H:%M:%SZ) \ --to $(date -u -d +7 days +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -v+7d +%Y-%m-%dT%H:%M:%SZ)

创建带参会者的事件

GOG_ACCOUNT=owner@company.com gog calendar create primary \ --summary 会议标题 \ --start 2026-04-02T10:00:00+00:00 \ --end 2026-04-02T11:00:00+00:00 \ --attendees attendee@company.com

删除事件

GOGACCOUNT=owner@company.com gog calendar delete primary EVENTID

移除已验证的账户

gog auth remove owner@company.com

Heleni专用:直接API变通方案(当gog CLI身份验证失败时)

gog auth login 需要浏览器——在服务器上无法使用。请改用 /opt/ocana/openclaw/.gog/credentials.json 中预先存在的凭据。

bash

1. 从文件中读取clientid、clientsecret、refresh_token(所有者账户)


账户:agent (genesis@ocana.ai),owner (netanelab@monday.com)

2. 刷新访问令牌

curl -s -X POST https://oauth2.googleapis.com/token \ -d clientid=id> \ -d clientsecret=secret> \ -d refreshtoken=token> \ -d granttype=refreshtoken

→ 从响应中获取access_token

3. 直接调用日历API

curl -s https://www.googleapis.com/calendar/v3/calendars/netanelab%40monday.com/events?timeMin=&timeMax=&singleEvents=true&orderBy=startTime&maxResults=10 \ -H Authorization: Bearer $ACCESS_TOKEN

4. 列出所有日历

curl -s https://www.googleapis.com/calendar/v3/users/me/calendarList \ -H Authorization: Bearer $ACCESS_TOKEN

注意: ~/.config/gws/credentials.json(gog默认路径)包含过时/损坏的令牌。请始终使用 /opt/ocana/openclaw/.gog/credentials.json。



验证清单

  • - [ ] 所有者已与代理邮箱共享日历
  • [ ] 权限设置为对事件进行更改(非只读)
  • [ ] 代理已为所有者账户运行 gog auth add
  • [ ] gog auth list 显示所有者账户包含日历服务
  • [ ] 测试事件已在所有者日历中成功创建
  • [ ] 测试事件在验证后已删除
  • [ ] 所有日历命令均使用 GOG_ACCOUNT=owner@company.com

成本提示

  • - 低成本: 这是一次性设置——后续成本非常低
  • 小型模型也可用: 所有步骤都是程序化的——任何模型都可以遵循
  • 避免: 不要反复重新验证——只要不被撤销,令牌可以持续很长时间
  • 批量操作: 在单个 gog auth add 调用中添加所有需要的服务(gmail、calendar、drive、contacts),而不是

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 calendar-setup-1775889130 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 calendar-setup-1775889130 技能

通过命令行安装

skillhub install calendar-setup-1775889130

下载

⬇ 下载 calendar-setup v1.1.1(免费)

文件大小: 4.08 KB | 发布时间: 2026-4-12 09:17

v1.1.1 最新 2026-4-12 09:17
calendar-setup v1.1.1

- Added Heleni-specific section for direct Google Calendar API access when gog CLI authentication fails (browserless or server environments).
- Provided step-by-step curl commands and notes for using pre-existing credentials on specific hosts.
- No other procedural changes; rest of the documentation remains as before.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large