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.
 
 
 
 
 

126 lines
3.0 KiB

# Google Calendar Skill
## 功能说明
为 OpenClaw 提供 Google Calendar 集成,支持:
- ✅ 读取日历事件(今日/明日/本周)
- ✅ 创建新事件
- ✅ 删除事件
- ✅ 多时区支持
- ✅ 服务账号认证
## 安装
### 1. 安装 Python 依赖
```bash
pip install google-auth google-api-python-client
```
或在 skill 目录执行:
```bash
cd /root/.openclaw/workspace/skills/google-calendar
pip install -r requirements.txt
```
### 2. 配置凭证
凭证文件位置:`/root/.openclaw/credentials/google-calendar-life.json`
**获取凭证步骤:**
1. 访问 https://console.cloud.google.com/
2. 创建或选择 Google Cloud 项目
3. 启用 Google Calendar API
4. 创建服务账号 (Service Account)
5. 下载 JSON 密钥文件
6. 将内容保存到凭证文件
7. 共享目标日历给服务账号邮箱(格式:`xxx@xxx.iam.gserviceaccount.com`)
### 3. 启用 Skill
编辑 `/root/.openclaw-life/openclaw.json`(张大师配置)或 `/root/.openclaw/openclaw.json`(主配置):
```json
{
"skills": {
"entries": {
"google-calendar": {
"enabled": true
}
}
}
}
```
## 配置
编辑 `config.yaml`
```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` |
## 编程接口
```python
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 中共享日历给服务账号邮箱。
## 安全提示
- 凭证文件包含私钥,请妥善保管
- 不要将凭证文件提交到版本控制
- ✅ 使用服务账号而非个人账号进行自动化操作
- ✅ 定期轮换服务账号密钥