SuperAPI AI Directory

google-calendar

Office & productivity

View repository

Updated 10-16 01:29

About this skill

Google Calendar Sync

Overview

View calendars from multiple Google accounts (work, personal, etc.) at once and provide an integrated schedule.

  • Use pre-authenticated refresh token (no need to log in every time)
  • Fast retrieval via parallel Subagent execution
  • Detect schedule conflicts between accounts

Trigger conditions

View

  • "today's schedule", "tell me this week's schedule"
  • "check calendar", "what's my schedule"
  • "next meeting", "what's happening tomorrow"
  • "check for schedule conflicts"

Create

  • "create a new event", "add a meeting"
  • "schedule a meeting for tomorrow at 3"
  • "create a team meeting next Monday"

Modify

  • "change the event time", "change the meeting time"
  • "change sync meeting to 14:21"
  • "change the meeting title"

Delete

  • "delete the event", "cancel the meeting"
  • "remove the event"

Prerequisites

1. Set up Google Cloud project

  1. Google Cloud Consolecreate a project at
  2. Enable Calendar API
  3. Create OAuth 2.0 Client ID (Desktop type)
  4. credentials.json download → references/credentials.jsonsave to

2. Authenticate per account (first time only)

# 회사 계정
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

Log in with Google in the browser → refresh token will be accounts/{name}.jsonsaved to

Workflow

1. Check registered accounts

ls .claude/skills/google-calendar/accounts/
# → work.json, personal.json

2. Run Subagents in parallel

Call the Task tool for each account in parallel:

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

Each subagent executes the following:

uv run python .claude/skills/google-calendar/scripts/fetch_events.py \
  --account {account_name} \
  --days 7

3. Merge results

  • Sort events from all accounts chronologically
  • Events in the same time slot = marked as conflicts
  • Distinguish by color/icon per account

Output format

📅 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건 충돌

Execution example

User: "tell me this week's schedule"

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

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

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

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

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

Error handling

Situation Handling
accounts/ folder is empty Guide initial setup (how to run setup_auth.py)
Token for a specific account expired Guide re-authentication for that account, other accounts still work normally
API quota exceeded Guide to retry after a moment
Network error Request to check connection

Scripts

File Purpose
scripts/setup_auth.py OAuth authentication and token storage per account
scripts/fetch_events.py View events for a specific account (CLI)
scripts/manage_events.py Create/modify/delete events (CLI)
scripts/calendar_client.py Google Calendar API client library

Schedule management (create/modify/delete)

Create event

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

Create all-day event

uv run python .claude/skills/google-calendar/scripts/manage_events.py create \
    --summary "연차" \
    --start "2026-01-10" \
    --end "2026-01-11" \
    --account personal

Modify event

uv run python .claude/skills/google-calendar/scripts/manage_events.py update \
    --event-id "abc123" \
    --summary "팀 미팅 (변경)" \
    --start "2026-01-06T14:21:00" \
    --account work

Delete event

uv run python .claude/skills/google-calendar/scripts/manage_events.py delete \
    --event-id "abc123" \
    --account work

Options

Options Description
--summary Event Title
--start Start Time (ISO format: 2026-01-06T14:00:00 or 2026-01-06)
--end End Time
--description Event Description
--location Location
--attendees Attendee Emails (comma-separated)
--account Account (work, personal, etc.)
--adc Use gcloud ADC
--timezone Timezone (default: Asia/Seoul)
--json Output in JSON format

References

Documentation Content
references/setup.md Detailed Initial Setup Guide
references/credentials.json Google OAuth Client ID (gitignore)

File Structure

.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

Security Precautions

  • accounts/*.json: includes refresh token, never commit
  • references/credentials.json: includes Client Secret, do not commit
  • .gitignoremust be added to