ClawSkills logoClawSkills

Google Calendar

通过 Google Calendar API 与 Google Calendar 交互——列出即将到来的事件,创建新事件,更新或删除它们。当您需要以编程方式

介绍

# Google Calendar Skill

## 概述

该技能提供了对 Google Calendar REST API 的简单封装。它允许您: - **列出** 即将到来的事件(可选择按时间范围或查询进行过滤) - **添加** 一个新事件,包含标题、开始/结束时间、描述、地点和参会者 - 通过 ID **更新** 现有事件 - 通过 ID **删除** 事件

该技能使用 Python 实现(`scripts/google_calendar.py`)。它需要设置以下环境变量(您可以使用 `openclaw secret set` 安全地存储它们): ``` GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… GOOGLE_REFRESH_TOKEN=… # obtained after OAuth consent GOOGLE_CALENDAR_ID=primary # or the ID of a specific calendar ``` 首次运行该技能时,您可能需要执行 OAuth 流程以获取刷新令牌(refresh token)—— 请参阅下方的 **设置** 部分。

## 命令 ``` google-calendar list [--from <ISO> --to <ISO> --max <N>] google-calendar add --title <title> [--start <ISO> --end <ISO>] [--desc <description> --location <loc> --attendees <email1,email2>] google-calendar update --event-id <id> [--title <title> ... other fields] google-calendar delete --event-id <id> ``` 所有命令都会返回打印到 stdout 的 JSON 载荷。错误信息会打印到 stderr,并导致非零退出码。

## 设置 1. **创建一个 Google Cloud 项目** 并启用 *Google Calendar API*。 2. **创建 OAuth 凭据**(类型选择 *Desktop app*)。记下 `client_id` 和 `client_secret`。 3. 运行辅助脚本来获取刷新令牌: ```bash GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.auth ``` 它将打开一个浏览器(或打印一个可在其他地方打开的 URL)并请求您授予访问权限。批准后,复制它打印出的 `refresh_token`。 4. 安全地存储凭据: ```bash openclaw secret set GOOGLE_CLIENT_ID <value> openclaw secret set GOOGLE_CLIENT_SECRET <value> openclaw secret set GOOGLE_REFRESH_TOKEN <value> openclaw secret set GOOGLE_CALENDAR_ID primary # optional ``` 5. 安装所需的 Python 包(仅需一次): ```bash pip install --user google-auth google-auth-oauthlib google-api-python-client ```

## 工作原理(简述) 脚本从环境中加载凭据,使用刷新令牌刷新访问令牌,构建一个 `service = build('calendar', 'v3', credentials=creds)`,然后调用相应的 API 方法。

## 参考 - Google Calendar API 参考: https://developers.google.com/calendar/api/v3/reference - 已安装应用的 OAuth 2.0: https://developers.google.com/identity/protocols/oauth2/native-app

---

**注意:** 此技能不需要 GUI;它完全通过 HTTP 调用工作,因此适用于无头服务器(headless servers)。

更多产品