mcpField
G
google-calendar

google-calendar

github.com/team-attention生产力829127 次安装28 周前更新
代码仓库

关于 google-calendar

面向 Claude 的 Google Calendar 技能,可跨多个账号查看和管理日程。它并行查询各账号日历、汇总安排并检测冲突,也支持创建、修改和删除事件。

主要功能

  1. 01并行查询多个账号的事件
  2. 02按时间汇总日程
  3. 03检测跨账号日程冲突
  4. 04创建、修改和删除事件
  5. 05使用 OAuth refresh token 认证

适用场景

  1. 01同时查看工作和个人日程
  2. 02发现不同账号间的时间重叠
  3. 03在指定账号中添加或修改会议

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/team-attention/plugins-for-claude-natives --skill google-calendar

安装后在 Claude Code 中输入/google-calendar确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

pyproject.toml
examples/
parallel-fetch.md
quick-query.md
scripts/
calendar_client.py
fetch_events.py
manage_events.py
setup_auth.py

详细介绍

Google Calendar Sync

概述

一次性查询多个 Google 账号(公司、个人等)的日历,提供整合后的日程。

  • 使用预先授权的 refresh token(无需每次登录)
  • 通过 Subagent 并行执行,实现快速查询
  • 检测不同账号之间的日程冲突

触发条件

查询
  • “今天的日程”“告诉我本周的日程”
  • “查看日历”“我的日程是什么”
  • “下一个会议”“明天有什么安排”
  • “帮我检查日程冲突”
创建
  • “帮我创建新日程”“添加会议”
  • “明天下午 3 点安排会议”
  • “创建下周一的团队会议”
修改
  • “更改日程时间”“更改会议时间”
  • “将 sync 会议改到 14 点 21 分”
  • “修改会议标题”
删除
  • “删除日程”“取消会议”
  • “删除活动”

前置要求

1. 设置 Google Cloud 项目
  1. 在 Google Cloud Console 中创建项目
  2. 启用 Calendar API
  3. 创建 OAuth 2.0 Client ID(Desktop 类型)
  4. 下载 credentials.json → 保存到 references/credentials.json
2. 各账号认证(仅需首次执行一次)
# 회사 계정
uv run python .claude/skills/google-calendar/scripts/setup_auth.py --account work

# 개인 계정
uv run python .claude/skills/google-calendar/scripts/setup_auth.py --account personal

在浏览器中登录 Google → refresh token 将保存到 accounts/{name}.json

工作流

1. 查看已注册账号
ls .claude/skills/google-calendar/accounts/
# → work.json, personal.json
2. 并行执行 Subagent

针对各个账号并行调用 Task 工具:

# 병렬 실행 - 단일 메시지에 여러 Task 호출
Task(subagent_type="general-purpose", prompt="fetch calendar for work account")
Task(subagent_type="general-purpose", prompt="fetch calendar for personal account")

每个 Subagent 会执行以下操作:

uv run python .claude/skills/google-calendar/scripts/fetch_events.py \
  --account {account_name} \
  --days 7
3. 汇总结果
  • 按时间顺序排列所有账号的活动
  • 将同一时段的活动标记为冲突
  • 使用不同颜色/图标区分账号

输出格式

📅 2026-01-06 (월) 일정

[09:00-10:00] 🔵 팀 스탠드업 (work)
[10:00-11:30] 🟢 치과 예약 (personal)
[14:00-15:00] 🔵 고객 미팅 - 삼양 (work)
              ⚠️ 충돌: 개인 일정과 겹침
[14:00-14:30] 🟢 은행 방문 (personal)

📊 오늘 총 4개 일정 (work: 2, personal: 2)
   ⚠️ 1건 충돌

执行示例

用户:“告诉我本周的日程”

1. accounts/ 폴더 확인
   └── 등록된 계정: work, personal

2. Subagent 병렬 실행
   ├── Task: work 계정 이벤트 조회
   └── Task: personal 계정 이벤트 조회

3. 결과 수집 (각 subagent 완료 대기)
   ├── work: 8개 이벤트
   └── personal: 3개 이벤트

4. 통합 및 정렬
   └── 11개 이벤트, 2건 충돌 감지

5. 출력
   └── 일별로 그룹화하여 표시

错误处理

情况处理方式
accounts/ 文件夹为空提示初始设置(说明如何运行 setup_auth.py)
特定账号的 token 过期提示重新认证该账号;其余账号仍可正常查询
超出 API 配额提示稍后重试
网络错误请求检查连接

脚本

文件用途
scripts/setup_auth.py各账号的 OAuth 认证及 token 保存
scripts/fetch_events.py查询特定账号的活动(CLI)
scripts/manage_events.py创建/修改/删除活动(CLI)
scripts/calendar_client.pyGoogle Calendar API 客户端库

日程管理(创建/修改/删除)

创建日程
uv run python .claude/skills/google-calendar/scripts/manage_events.py create \
    --summary "팀 미팅" \
    --start "2026-01-06T14:00:00" \
    --end "2026-01-06T15:00:00" \
    --account work
创建全天日程
uv run python .claude/skills/google-calendar/scripts/manage_events.py create \
    --summary "연차" \
    --start "2026-01-10" \
    --end "2026-01-11" \
    --account personal
修改日程
uv run python .claude/skills/google-calendar/scripts/manage_events.py update \
    --event-id "abc123" \
    --summary "팀 미팅 (변경)" \
    --start "2026-01-06T14:21:00" \
    --account work
删除日程
uv run python .claude/skills/google-calendar/scripts/manage_events.py delete \
    --event-id "abc123" \
    --account work
选项
选项说明
--summary日程标题
--start开始时间(ISO format:2026-01-06T14:00:00 或 2026-01-06)
--end结束时间
--description日程说明
--location地点
--attendees参与者邮箱(以逗号分隔)
--account账号(work、personal 等)
--adc使用 gcloud ADC
--timezone时区(默认值:Asia/Seoul)
--json以 JSON 格式输出

参考资料

文档内容
references/setup.md初始设置详细指南
references/credentials.jsonGoogle OAuth Client ID(gitignore)

文件结构

.claude/skills/google-calendar/
├── SKILL.md                    # 이 파일
├── scripts/
│   ├── calendar_client.py      # API 클라이언트
│   ├── setup_auth.py           # 인증 설정
│   ├── fetch_events.py         # 이벤트 조회 CLI
│   └── manage_events.py        # 이벤트 생성/수정/삭제 CLI
├── references/
│   ├── setup.md                # 설정 가이드
│   └── credentials.json        # OAuth Client ID (gitignore)
└── accounts/                   # 계정별 토큰 (gitignore)
    ├── work.json
    └── personal.json

安全注意事项

  • accounts/*.json:包含 refresh token,绝对不要提交
  • references/credentials.json:包含 Client Secret,不要提交
  • 必须添加到 .gitignore

评论

支持 Markdown