google-calendar について
複数の Google Calendar アカウントの予定を確認・管理する Claude スキルです。アカウントごとの並列検索、予定の統合と重複検出に加え、予定の作成・変更・削除に対応します。
主な機能
- 01複数アカウントの予定を並列取得
- 02予定を時系列で統合
- 03アカウント間の予定重複を検出
- 04予定の作成・変更・削除
- 05OAuth refresh token による認証
活用シーン
- 01仕事用と個人用の予定をまとめて確認
- 02アカウント間で重なる予定を発見
- 03指定アカウントの会議を追加・変更
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ team-attention/ plugins-for-claude-natives --skill google-calendarインストール後、Claude Code で/google-calendarを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
pyproject.tomlexamples/parallel-fetch.mdquick-query.mdscripts/calendar_client.pyfetch_events.pymanage_events.pysetup_auth.py詳細
Google Calendar Sync
概要
複数の Google アカウント(仕事用、個人用など)のカレンダーを一度に確認し、統合された予定を提供します。
- 事前に認証した refresh token を使用します(毎回ログインする必要はありません)
- Subagent の並列実行により、すばやく確認できます
- アカウント間の予定の重複を検出します
トリガー条件
確認
- 「今日の予定」「今週の予定を教えて」
- 「カレンダーを確認して」「スケジュールはどうなってる?」
- 「次のミーティングは?」「明日は何がある?」
- 「予定の重複を確認して」
作成
- 「新しい予定を作成して」「ミーティングを追加して」
- 「明日の3時に会議を設定して」
- 「来週月曜日のチームミーティングを作成」
変更
- 「予定の時間を変更して」「ミーティングの時間を変更して」
- 「sync ミーティングを14時21分に変更」
- 「会議のタイトルを変更して」
削除
- 「予定を削除して」「ミーティングをキャンセルして」
- 「イベントを削除して」
事前要件
1. Google Cloud プロジェクトの設定
- Google Cloud Consoleでプロジェクトを作成します
- Calendar API を有効にします
- OAuth 2.0 Client ID を作成します(Desktop タイプ)
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 の実行方法) |
| 特定のアカウントのトークンが期限切れ | 該当アカウントの再認証を案内し、他のアカウントは通常どおり確認します |
| API の割り当て量を超過 | しばらくしてから再試行するよう案内します |
| ネットワークエラー | 接続の確認を依頼します |
スクリプト
| ファイル | 用途 |
|---|---|
scripts/setup_auth.py | アカウントごとの OAuth 認証と token の保存 |
scripts/fetch_events.py | 特定アカウントのイベント確認(CLI) |
scripts/manage_events.py | イベントの作成/変更/削除(CLI) |
scripts/calendar_client.py | Google 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.json | Google 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 対応