From calendar
Manual Google Calendar API fallback for users without a native MCP connector. Reads/creates events across multiple calendars, performs focus time analysis, and supports weekly agenda workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/calendar:app-gcalendarThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Auth:** OAuth2 via Google Calendar API
Auth: OAuth2 via Google Calendar API
URL: https://calendar.google.com
Configuration: Set credentials and calendar IDs in vault/calendar/config.md
Provides the calendar-agent with live event data across all configured calendars. This is the primary input for focus time analysis — the agent reads the actual schedule to calculate how many qualifying deep-work blocks (90+ continuous minutes) occurred in the past week and are available in the upcoming week. It also supports writing focus block events and deadline reminder events directly to the calendar as part of the weekly agenda flow.
Add to vault/calendar/config.md:
gcal_credentials: ~/Documents/aireadylife/vault/calendar/00_current/gcal-oauth.json
gcal_primary_calendar_id: [email protected]
gcal_work_calendar_id: [email protected]
gcal_focus_calendar_id: [email protected] # calendar where focus blocks are written
gcal_color_focus: 9 # Blueberry — used for focus block events
gcal_color_deadline: 11 # Tomato — used for deadline reminder events
OAuth2 setup: Create a project in Google Cloud Console → enable Google Calendar API → create
OAuth2 credentials → download JSON to vault/calendar/00_current/gcal-oauth.json.
Scope needed: https://www.googleapis.com/auth/calendar (full read/write).
GET https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events
?timeMin={RFC3339}&timeMax={RFC3339}&singleEvents=true&orderBy=startTime
&fields=items(id,summary,start,end,description,location,attendees,recurrence,colorId)
POST https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events
Body: {summary, start: {dateTime, timeZone}, end: {dateTime, timeZone}, description, colorId}
GET https://www.googleapis.com/calendar/v3/freeBusy
Body: {timeMin, timeMax, items: [{id: calendarId}]}
PATCH https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events/{eventId}
DELETE https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events/{eventId}
Authorization: Bearer {oauth_token}
When running focus time analysis (flow-analyze-focus-time), read events from all
configured calendars merged and sorted by start time. For each day:
Classify each event by type to support focus time and schedule quality analysis:
When creating focus blocks as part of weekly agenda:
Focus: {topic or domain} — e.g., "Focus: Project work" or "Focus: Deep work"op-weekly-agenda — read next 7 days of events across all calendars; create focus block events; write agenda to vaultop-focus-time-review — read past 7 days of events to calculate qualifying focus blocks; compare against 8-hour weekly targetop-deadline-planning — create deadline reminder events on the calendar for hard deadlines flagged in the vaultflow-analyze-focus-time — merge multi-calendar event data for focus time calculationflow-build-agenda — use free/busy data to place focus blocks in the weekly schedule~/Documents/aireadylife/vault/calendar/00_current/ — event summaries written after weekly reads
~/Documents/aireadylife/vault/calendar/00_current/ — focus time audit records written by focus-time-review
npx claudepluginhub fru-dev3/ai-ready-life --plugin calendarCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.