mcpField
G
google-calendar

google-calendar

github.com/team-attention生産性829127 回インストール28 週間前に更新
リポジトリ

google-calendar について

複数の Google Calendar アカウントの予定を確認・管理する Claude スキルです。アカウントごとの並列検索、予定の統合と重複検出に加え、予定の作成・変更・削除に対応します。

主な機能

  1. 01複数アカウントの予定を並列取得
  2. 02予定を時系列で統合
  3. 03アカウント間の予定重複を検出
  4. 04予定の作成・変更・削除
  5. 05OAuth 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 の実行方法)
特定のアカウントのトークンが期限切れ該当アカウントの再認証を案内し、他のアカウントは通常どおり確認します
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 など)
--adcgcloud ADC を使用
--timezoneタイムゾーン(デフォルト:Asia/Seoul)
--jsonJSON 形式で出力

参照資料

文書内容
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への追加が必須です

コメント