From google-calendar
Queries, creates, updates, deletes Google Calendar events across multiple accounts. Detects conflicts, formats schedules. Triggers on 'today's schedule' or 'add meeting' queries.
npx claudepluginhub team-attention/plugins-for-claude-natives --plugin google-calendarThis skill uses the workspace's default tool permissions.
여러 Google 계정(회사, 개인 등)의 캘린더를 한 번에 조회하여 통합된 일정을 제공한다.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Share bugs, ideas, or general feedback.
여러 Google 계정(회사, 개인 등)의 캘린더를 한 번에 조회하여 통합된 일정을 제공한다.
credentials.json 다운로드 → references/credentials.json에 저장# 회사 계정
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에 저장됨
ls .claude/skills/google-calendar/accounts/
# → work.json, personal.json
각 계정별로 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
📅 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에 추가 필수