Google Calendar Daily Planner
Pulls today's or tomorrow's Google Calendar events via gcalcli, analyzes meeting density, identifies focus blocks, and generates a time-blocked daily plan. Prerequisites: gcalcli, gcloud, curl, jq.
MCP get_skill({ skillId: "google-calendar-daily-planner-147a026a" })Use this skill with your agent
Create a free account and connect via MCP
# Google Calendar Daily Planner
Pull your Google Calendar events, analyze meeting density, find focus blocks, and generate an optimized time-blocked daily plan.
## When to Use
- "Plan my day based on my calendar"
- "What does tomorrow look like?"
- "Find focus time blocks in my schedule today"
## Requirements
- **gcalcli** installed (`pip install gcalcli`)
- Google Calendar OAuth configured (`gcalcli init`)
- Alternative: **Google Cloud CLI** (`gcloud`) with Calendar API enabled
## Workflow
### Step 1 — Fetch Today's Events
```bash
# Using gcalcli
gcalcli agenda "today" "tomorrow" --details all --tsv 2>/dev/null
# Alternative: using Google Calendar API directly
ACCESS_TOKEN=$(gcloud auth print-access-token)
TIME_MIN=$(date -u '+%Y-%m-%dT00:00:00Z')
TIME_MAX=$(date -u -d 'tomorrow' '+%Y-%m-%dT00:00:00Z')
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=${TIME_MIN}&timeMax=${TIME_MAX}&singleEvents=true&orderBy=startTime" | \
jq '.items[] | {summary: .summary, start: .start.dateTime, end: .end.dateTime, attendees: [.attendees[]?.email], location: .location, status: .status}'
```
### Step 2 — Classify Events
For each event, apply labels:
| Label | Criteria |
|-------|----------|
| 🔴 **External** | Has attendees from different email domains |
| 🟡 **Internal** | All attendees share your domain |
| 🔵 **Personal** | No attendees, or in personal calendar |
| ⚡ **Focus Block** | Calendar event with "focus" or "deep work" in title |
| 🍽️ **Lunch** | Overlaps 12:00-13:00, or titled lunch/break |
### Step 3 — Analyze Schedule Quality
Calculate:
- **Total meeting hours** — sum of all events
- **Largest free block** — longest gap between events
- **Context switches** — number of back-to-back events with different attendee groups
- **Focus time available** — total unscheduled time in 30+ min blocks
### Step 4 — Generate Time-Blocked Plan
Fill gaps between meetings with task blocks:
```markdown
# Daily Plan — {DATE}
## Schedule
| Time | Block | Type |
|------|-------|------|
| 08:00-08:30 | Morning routine & inbox scan | ⚡ Focus |
| 08:30-09:00 | Review PRs from yesterday | ⚡ Focus |
| 09:00-09:30 | Standup with Team | 🟡 Internal |
| 09:30-11:00 | Deep work — {top priority task} | ⚡ Focus |
| 11:00-12:00 | Client sync — Acme Corp | 🔴 External |
| 12:00-13:00 | Lunch | 🍽️ Break |
| 13:00-15:00 | Deep work — {second priority task} | ⚡ Focus |
| 15:00-15:30 | 1:1 with manager | 🟡 Internal |
| 15:30-16:00 | Email + Slack catchup | 📧 Admin |
## Day Score: 🟢 72%
- Focus time: 3.5h / 4h target
- Meetings: 2.5h (under 4h threshold ✅)
- Largest focus block: 1.5h (09:30-11:00)
- Context switches: 3 (moderate)
```
### Step 5 — Suggest Optimizations
If the day is meeting-heavy:
- Identify moveable meetings (internal, optional, or recurring)
- Suggest declining or rescheduling specific events
- Recommend batching short meetings together
Save plan to `outputs/YYYY/MM/YYYY-MM-DD-daily-plan.md`.
## Important Rules
- Read-only — never create, modify, or delete calendar events without explicit user request
- Respect event privacy — don't expose attendee lists unless asked
- Factor in commute time for in-person meetings with locations
## Example Prompts
- "Plan my day"
- "What's my schedule tomorrow?"
- "Find 2 hours of focus time today"
- "Rate how productive my Wednesday looks"Related Skills
More skills in Calendar & Scheduling
Google Calendar Availability Finder
Finds mutual free times across multiple Google Calendar users and proposes meeting slots. Generates scheduling links or draft calendar invites. Prerequisites: gcalcli, gcloud, curl, jq.
Google Calendar Event Creator
Creates Google Calendar events from natural language descriptions using gcalcli or Calendar API. Handles recurring events, attendees, reminders, and conference links. Prerequisites: gcalcli, gcloud, curl, jq.
Google Calendar Meeting Prep
Pulls upcoming meeting details from Google Calendar, researches attendees and topics via Brave Search, and generates a meeting prep brief with talking points. Prerequisites: gcalcli, gcloud, curl, jq, brave-search MCP.
Google Calendar Weekly Review
Generates a weekly calendar review: time spent in meetings vs focus work, meeting categories, overload analysis, and improvement recommendations. Prerequisites: gcalcli, gcloud, curl, jq.
Explore Other Categories
Skills from other categories with shared topics
Define Hypothesis
Defines a testable hypothesis with clear success metrics and a validation approach. Use when forming assumptions to test or aligning a team on what success looks like, before any experiment is designed. To design the A/B test or experiment that will validate the hypothesis, use measure-experiment-design.
Define Jtbd Canvas
Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job. Use when deeply understanding customer motivations, designing for jobs, or reframing product positioning.
Define Opportunity Tree
Creates an opportunity solution tree mapping desired outcomes to opportunities and potential solutions. Use for outcome-driven product discovery, prioritization, or communicating product strategy.