skills/google-calendar/SKILL.md
Google 캘린더 일정 조회/생성/수정/삭제. "오늘 일정", "이번 주 일정", "미팅 추가해줘" 요청에 사용. 여러 계정(work, personal) 통합 조회 지원.
npx skillsauth add seungwonme/.claude google-calendarInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage calendar events through Google Calendar API - fetch, create, update, delete across multiple Google accounts.
Before running any command, check registered accounts in accounts/.
If
accounts/is empty → Readreferences/setup-guide.mdfor initial setup
ls .claude/skills/google-calendar/accounts/
# → work.json, personal.json, executive.json
When fetching events, run parallel SubAgents per account:
| Step | Task | Key Action |
|------|------|------------|
| 1 | Check accounts | ls accounts/ → identify all registered accounts |
| 2 | Parallel fetch | Run SubAgent per account: fetch_events.py --account {name} --days 7 |
| 3 | Merge & display | Sort by time, detect conflicts (overlapping across accounts), group by date |
1. ls accounts/ → work.json, personal.json
2. Parallel SubAgents:
- Task: uv run python scripts/fetch_events.py --account work --days 7
- Task: uv run python scripts/fetch_events.py --account personal --days 7
3. Merge results → sort by time → detect conflicts → display
📅 2026-01-06 (월) 일정
[09:00-10:00] 🔵 팀 스탠드업 (work)
[14:00-15:00] 🔵 고객 미팅 (work)
⚠️ 충돌: 개인 일정과 겹침
[14:00-14:30] 🟢 은행 방문 (personal)
📊 오늘 총 3개 일정 (work: 2, personal: 1) | ⚠️ 1건 충돌
| Step | Task | Key Action |
|------|------|------------|
| 1 | Parse request | Extract summary, start/end time, account from user request |
| 2 | Create event | Run manage_events.py create --summary ... --start ... --end ... --account ... |
| 3 | Open in browser | Parse 링크: from output → open "{url}" |
1. Parse: summary="팀 미팅", start=2026-02-12T15:00:00, end=2026-02-12T16:00:00, account=work
2. uv run python scripts/manage_events.py create \
--summary "팀 미팅" --start "2026-02-12T15:00:00" --end "2026-02-12T16:00:00" --account work
3. open "https://www.google.com/calendar/event?eid=abc123"
# Fetch events
uv run python .claude/skills/google-calendar/scripts/fetch_events.py \
--account work --days 7
# 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
# Update 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
| Option | Description |
|--------|-------------|
| --summary | 일정 제목 |
| --start | 시작 시간 (ISO: 2026-01-06T14:00:00 or 2026-01-06) |
| --end | 종료 시간 |
| --description | 일정 설명 |
| --location | 장소 |
| --attendees | 참석자 이메일 (쉼표 구분) |
| --account | 계정 (work, personal 등) |
| --timezone | 타임존 (기본값: Asia/Seoul) |
| --json | JSON 형식 출력 |
After create/update, parse the 링크: from script output and open in browser:
# Script output example:
# ✅ 일정 생성 완료
# 링크: https://www.google.com/calendar/event?eid=abc123
# Open in browser
open "https://www.google.com/calendar/event?eid=abc123"
skills/google-calendar/
├── SKILL.md
├── scripts/
│ ├── calendar_client.py # API client library
│ ├── setup_auth.py # OAuth setup
│ ├── fetch_events.py # Event fetch CLI
│ └── manage_events.py # Event CRUD CLI
├── references/
│ ├── setup-guide.md # Initial setup guide
│ └── credentials.json # OAuth Client ID (gitignore)
└── accounts/ # Per-account tokens (gitignore)
| Situation | Resolution |
|-----------|------------|
| accounts/ empty | Read references/setup-guide.md for initial setup |
| Token missing | Guide user to run setup_auth.py --account <name> |
| Token expired | Auto-refresh; if failed, guide re-authentication |
| API quota exceeded | Retry after short delay |
tools
유튜브 콘텐츠 기획 및 알고리즘 전문가. 영상 주제 기획, 아웃라이어 전략, 시청자 풀 분석, 알고리즘 치트키가 필요할 때 사용.
research
유튜브 채널 운영 전문가. 콘텐츠 기획부터 제목/썸네일, 영상 제작, 채널 관리, 수익화, 영상 요약까지 전 영역 지원. Routes to the appropriate sub-skill. Trigger on "유튜브", "YouTube", "영상 기획", "콘텐츠 기획", "아웃라이어", "알고리즘", "썸네일", "제목 공식", "클릭률", "영상 제작", "원고", "인트로", "편집", "채널 브랜딩", "댓글 관리", "수익화", "키 콘텐츠", "풀링 콘텐츠", "객단가", "유튜브 정리", "영상 요약", "transcript 번역", "YouTube digest", "영상 퀴즈". Sub-skills — 기획 (콘텐츠 기획, 알고리즘 전략, 아웃라이어 제작, 시청자 풀 분석), 썸네일 (제목/썸네일 제작, 19가지 제목 공식, A/B 테스트), 제작 (원고 작성, 인트로 구성, 편집 기법, 시청자 참여 유도), 채널 (채널 브랜딩, 이미지 관리, 댓글 관리), 수익화 (키/풀링 콘텐츠, 상품 판매 전략, 객단가 최적화), 요약 (YouTube 영상 분석, transcript 추출/번역, 퀴즈, Deep Research).
development
Spec-driven development: interview the user in depth to produce a comprehensive technical spec. Use when the user says "spec", "스펙", "스펙 작성", "기능 정의", "요구사항 정리", "interview me", "spec this out", "feature spec", or wants to define a feature/project before implementation. Also triggers when a SPEC.md file is referenced.
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.