You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.0 KiB
3.0 KiB
Google Calendar Skill
功能说明
为 OpenClaw 提供 Google Calendar 集成,支持:
- ✅ 读取日历事件(今日/明日/本周)
- ✅ 创建新事件
- ✅ 删除事件
- ✅ 多时区支持
- ✅ 服务账号认证
安装
1. 安装 Python 依赖
pip install google-auth google-api-python-client
或在 skill 目录执行:
cd /root/.openclaw/workspace/skills/google-calendar
pip install -r requirements.txt
2. 配置凭证
凭证文件位置:/root/.openclaw/credentials/google-calendar-life.json
获取凭证步骤:
- 访问 https://console.cloud.google.com/
- 创建或选择 Google Cloud 项目
- 启用 Google Calendar API
- 创建服务账号 (Service Account)
- 下载 JSON 密钥文件
- 将内容保存到凭证文件
- 共享目标日历给服务账号邮箱(格式:
xxx@xxx.iam.gserviceaccount.com)
3. 启用 Skill
编辑 /root/.openclaw-life/openclaw.json(张大师配置)或 /root/.openclaw/openclaw.json(主配置):
{
"skills": {
"entries": {
"google-calendar": {
"enabled": true
}
}
}
}
配置
编辑 config.yaml:
credentials_path: /root/.openclaw/credentials/google-calendar-life.json
timezone: Asia/Shanghai
calendar_id: primary # 或具体日历 ID
命令
| 命令 | 说明 | 示例 |
|---|---|---|
/calendar today |
查看今日日程 | /calendar today |
/calendar tomorrow |
查看明日日程 | /calendar tomorrow |
/calendar week |
查看本周日程 | /calendar week |
/calendar status |
检查连接状态 | /calendar status |
/calendar add |
添加新事件 | /calendar add 明天 14:00 开会 |
/calendar help |
显示帮助 | /calendar help |
编程接口
from google_calendar import GoogleCalendarClient
client = GoogleCalendarClient(
credentials_path='/root/.openclaw/credentials/google-calendar-life.json',
timezone='Asia/Shanghai'
)
# 获取今日事件
events = client.get_today_events()
# 创建事件
from datetime import datetime
client.create_event(
summary='团队会议',
start_time=datetime(2026, 2, 24, 14, 0),
description='讨论项目进度'
)
# 测试连接
status = client.test_connection()
print(f"Connected: {status['connected']}")
依赖
- Python 3.8+
- google-auth
- google-api-python-client
故障排查
错误:Credentials file not found
检查凭证文件路径是否正确,文件是否存在。
错误:Failed to initialize Google Calendar service
- 确认凭证 JSON 格式正确
- 确认服务账号有 Calendar API 访问权限
- 确认目标日历已共享给服务账号
错误:googleapiclient.errors.HttpError: Forbidden
服务账号没有访问目标日历的权限。请在 Google Calendar 中共享日历给服务账号邮箱。
安全提示
- ⚠️ 凭证文件包含私钥,请妥善保管
- ⚠️ 不要将凭证文件提交到版本控制
- ✅ 使用服务账号而非个人账号进行自动化操作
- ✅ 定期轮换服务账号密钥