calendar-audit

📁 foogunlana/skills 📅 5 days ago
1
总安装量
1
周安装量
#51287
全站排名
安装命令
npx skills add https://github.com/foogunlana/skills --skill calendar-audit

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
claude-code 1

Skill 文档

Calendar Audit

A skill that protects deep work time by auditing your calendar and scoring every meeting.

Protect the maker. Score the meetings. Reclaim the time.

Core Design Principle

Value first, setup later. A new user sees their first audit within 2 minutes. No tools to install. No questions to answer first. Screenshot in, audit out.

Two Flows

Condition Flow
No .claude/calendar-audit.md exists Onboarding Flow — instant audit from screenshot, then setup
.claude/calendar-audit.md exists Regular Flow — FAST approach, scores from configured calendar tool

Onboarding Flow (First Run Only)

Detection: Check if .claude/calendar-audit.md exists. If no config exists, run this flow. Otherwise skip to Regular Flow.

Goal: Deliver an audit immediately, then calibrate preferences.

Step 1: Welcome (10 seconds)

Read references/branding.md and display verbatim:

  1. Logo
  2. Origin quote
  3. Workflow diagram
  4. Key concepts

Then immediately:

Let's audit your calendar right now. No setup needed.

Take a screenshot of your calendar for this week (the week view works best)
and paste it here.

This is a fast first pass — we can set up automated calendar access afterwards
so future audits are hands-free.

Wait for screenshot.

Step 2: Quick Focus Question (30 seconds)

After receiving the screenshot, before auditing, ask ONE question:

How much focus time do you think you need each week?

Research says knowledge workers need 3-4 hours of uninterrupted focus daily.
I recommend at least 60% focus / 40% meetings — that's ~24h focus out of a
40h week, with at least 4 hours of protected deep work per day.

What feels right for you?
→ 60/40 (recommended — player-coach, technical leader)
→ 70/30 (IC-heavy, needs more building time)
→ 50/50 (manager-heavy, lots of direct reports)
→ Other

Wait for answer. Use their choice as the focus target for the audit.

Step 3: Instant Audit (2 minutes)

Using the screenshot + focus target, immediately run the full audit:

  1. Extract events from the screenshot using vision — for each event capture: day, time, title, duration
  2. Calculate totals — meeting hours, focus hours, contiguous blocks, per-day breakdown (see Regular Flow Step 1a for formulas)
  3. Score every meeting using the 5-Dimension framework as default (no framework choice yet — that comes in setup). See references/frameworks.md for scoring rules.
  4. Present the full audit in the standard output format (Red/Orange/Yellow/Green zones with suggestions — see Regular Flow Step 3 output format)
  5. Show the gap: current vs target

Then ask:

Here's your audit. Take a look at the scores.

Anything look wrong? Correct any scores and I'll regenerate suggestions.
For example: "Abdul 1:1 should be Green not Yellow" or "Sales standup
score is right but I need to keep it for political reasons"

Wait for corrections. When user provides corrections:

  • Update scores
  • Record overrides with reasons
  • Regenerate the zone tables and suggestions
  • Repeat until user is satisfied

Step 4: Full Setup (after audit is done)

Once the user is happy with the audit:

Great — that's your first audit done.

Let's set up so next time is automated. I'll ask a few quick questions
to save your preferences.

Then run the setup wizard:

1. What should I call you?

2. What's your role? (e.g. CTO, Engineering Manager, IC)

3. How many direct reports? (helps score 1:1s correctly)

4. Top 3 priorities that need deep work this quarter?

5. How should I access your calendar going forward?

   Zero setup (you provide data each time):
   a) Screenshot — paste an image each week
   b) Copy-paste — paste your schedule as text
   c) ICS file — export from any calendar app

   Automated (one-time setup, then hands-free):
   d) Google Calendar MCP [recommended for Google users]
   e) Apple Calendar MCP [recommended for macOS]
   f) icalBuddy [macOS CLI]
   g) gcalcli [Google Calendar CLI]

   See references/calendar-setup.md for setup instructions.

6. Which decision framework do you prefer?

   a) 5-Dimension [default] — what we just used. Scores 5 factors. Most comprehensive.
   b) Eisenhower — simple Urgent vs Important grid. Fastest.
   c) RACI — classifies your role (Accountable/Responsible/Consulted/Informed). Best for cutting meetings where you're just "Informed".
   d) Value vs Effort — scores value generated vs time invested.
   e) Custom — define your own dimensions and scoring.

   See references/frameworks.md for details on each.

Parse the response and use sensible defaults for skipped fields:

  • role: “Engineering Leader”
  • focus_ratio: value from Step 2 (default 60)
  • calendar.tool: “screenshot”
  • framework.name: “5-dimension”
  • maker_days: [“Tuesday”, “Thursday”]

If user picks Custom framework, run the guided creation flow from references/frameworks.md (Custom section).

Write .claude/calendar-audit.md config with all answers (see references/config-guide.md for format).

Create .claude/modules/meeting-scores.md with scores from the first audit (see Regular Flow Step 5 for format).

You're all set. Run /calendar-audit anytime — ideally Monday mornings.

Your config: .claude/calendar-audit.md
Meeting history: .claude/modules/meeting-scores.md

Exit after onboarding and first audit.


Regular Flow (Every Subsequent Run)

FAST approach — no questions, just audit:

  1. Gather context (calendar, goals, config)
  2. Calculate deep work budget and gap
  3. Score every meeting using configured framework
  4. Present audit with specific suggestions
  5. User reviews and overrides
  6. Save decisions to meeting memory

Step 1: Gather Context

1a. Calendar

Read calendar.tool from config and pull the week’s events:

Tool How
google-calendar-mcp Call MCP list-events for current week (Mon-Fri)
apple-calendar-mcp Call MCP tool for current week
icalbuddy Run: icalBuddy -f "" -nc -nrd -df "%Y-%m-%d" -tf "%H:%M" eventsFrom:today to:+5d
gcalcli Run: gcalcli agenda "$(date +%Y-%m-%d)" "$(date -v+5d +%Y-%m-%d)" --details all --tsv
ics-file Read file at calendar.ics_path, parse VEVENT components, filter to current week
screenshot Ask user: “Paste a screenshot of your calendar for this week (week view works best)” — extract events via vision
copy-paste Ask user: “Paste your schedule for this week as text” — parse events
manual Ask user: “List your meetings for this week (name, day, time, duration)”
  • If invoked on a weekend or late Friday, pull next week instead
  • Calculate:
    • Total meeting hours (raw duration of all meetings)
    • Effective meeting cost (raw hours + 15 min context-switch per meeting)
    • Total focus hours (remaining time after effective meeting cost)
    • Contiguous focus blocks (2+ hours uninterrupted by meetings)
    • Per-day breakdown (meetings vs focus per day)
  • Flag:
    • Days with focus time under min_daily_focus hours (default 2)
    • Days with 5+ meetings
    • Back-to-back meetings without breaks
    • Scheduling conflicts (overlapping events)

1b. Goals & Work Profile

Read context to understand what deep work is needed:

  • User config (.claude/calendar-audit.md) for role, priorities, preferences
  • Weekly note (if exists) for this week’s tasks — estimate deep work hours needed
  • Monthly goals (if exists) for north star priorities
  • Meeting memory (.claude/modules/meeting-scores.md) for previous scores and overrides

If no weekly note or goals exist, ask: “What’s the most important deep work you need to do this week?”

1c. Calculate Deep Work Budget

Based on context, calculate:

Deep Work Budget
────────────────
Work week:              [work_hours, default 40]h
Target focus ratio:     [focus_ratio, default 60]%
Target focus hours:     [work_hours * ratio]h
Target meeting hours:   [work_hours * (1-ratio)]h
Min daily focus:        [min_daily_focus, default 4]h

Current meetings:       Xh (raw) / Yh (with transitions)
Current focus:          Zh
Current ratio:          Z/work_hours = N%

Gap:                    [target - current]h to reclaim

Minimum thresholds (always flag if violated):

  • At least 2 contiguous blocks of 2+ hours per week
  • No day with zero focus time
  • At least 1 “maker day” (4+ hours focus) per week

Step 2: Set Deep Work Goals

Based on tasks and priorities, propose specific deep work goals with time estimates and proposed calendar slots.

Format:

## Deep Work Goals This Week

| # | Goal | Est. Time | Priority | Proposed Slot |
|---|------|-----------|----------|---------------|
| 1 | [goal from tasks/priorities] | [hours] | P1 | [day, time range] |
| 2 | [goal] | [hours] | P2 | [day, time range] |

**Total deep work needed:** Xh
**Total deep work available:** Yh
**Gap:** Zh (need to free up Z hours from meetings)

If there’s a gap, proceed to Step 3 to find meeting time to reclaim. If no gap, still run the audit — meeting load creeps up over time.

Step 3: Score and Rank Meetings

Read framework.name from config (default: “5-dimension”). Apply that framework’s scoring model from references/frameworks.md.

Score every non-focus, non-personal event on the calendar.

Framework-Specific Scoring

5-Dimension: Score 5 dimensions (Decision Power, Delegation, Async Potential, Frequency Fit, Duration Fit) 1-3 each. Total 5-15. Zones: Green (5-7), Yellow (8-9), Orange (10-11), Red (12-15).

Eisenhower: Score Urgency and Importance 1-3 each. Total 2-6. Zones: Green/Do (2), Yellow/Schedule (3), Orange/Delegate (4-5), Red/Delete (6).

RACI: Classify role: Accountable (Green), Responsible (Green), Consulted (Yellow), Informed (Red).

Value vs Effort: Score Value and Effort 1-3 each. Total 2-6. Quadrants: Quick Win/Green (2), Strategic-or-Evaluate/Yellow (3), Filler-or-Evaluate/Orange (4-5), Trap/Red (6).

Custom: Use dimensions and zones from framework.custom config.

See references/frameworks.md for complete scoring rules and guidelines for each framework.

Applying Overrides

Before presenting results, check scoring.overrides in config. For any meeting matching an override, use the override zone instead of the calculated score. Note in output: “(override: [reason])”.

If the meeting has been scored before (from meeting memory), note any changes in score and flag if a previously optimised meeting has regressed.

Output Format

Present the audit sorted by zone (Red first). Use the output columns specified in references/frameworks.md for the active framework.

## Meeting Audit — Week of [date]

**Framework:** [framework name]
**Current:** Xh meetings / Yh focus (Z% focus)
**Target:** Ah meetings / Bh focus (C% focus)
**Gap:** Need to reclaim ~Dh

### Red Zone (Eliminate/Delegate) — saves ~Xh
[framework-specific columns]

### Orange Zone (Restructure) — saves ~Xh
[framework-specific columns]

### Yellow Zone (Optimise) — saves ~Xh
[framework-specific columns]

### Green Zone (Keep)
[framework-specific columns]

**Total recoverable:** ~Xh
**Projected after changes:** Xh meetings / Yh focus (Z% focus)

Step 4: User Review

After presenting the audit:

  1. Ask user to confirm, override, or adjust any scores
  2. For overrides, record the reason (e.g. “Keep despite score — important relationship”)
  3. Save all decisions to meeting memory

If user is resistant to cutting a meeting, ask:

  • “What would happen if you skipped this for 2 weeks as an experiment?”
  • “Could you send a delegate and get a 2-line summary?”

Step 5: Save to Meeting Memory

Update .claude/modules/meeting-scores.md with:

  • Current scores for all meetings (with framework used)
  • User overrides and reasons
  • Week-over-week comparison
  • Running trend (are meetings increasing or decreasing?)

If the file doesn’t exist, create it:

# Meeting Scores

> Running log of meeting audit scores and decisions.

## Current Scores

| Meeting | Last Scored | Framework | Score | Zone | User Decision | Notes |
|---------|-------------|-----------|-------|------|---------------|-------|

## Weekly Snapshots

<!-- Append weekly totals here -->

| Week | Framework | Meetings (h) | Focus (h) | Focus % | Meetings Optimised |
|------|-----------|-------------|-----------|---------|-------------------|

Key Principles

  • Contiguous blocks matter more than total hours. 3 hours scattered across 30-min gaps is worth less than 1 contiguous 2-hour block.
  • Don’t just count meetings — count transitions. Each meeting has ~15 min of context-switching cost. A day with 6x30min meetings costs ~4.5h, not 3h.
  • Batch meetings on specific days when possible. Aim for 1-2 “maker days” (mostly focus) and 2-3 “manager days” (meetings batched).
  • Morning focus is often more valuable than afternoon focus for creative and learning work.
  • The goal is not zero meetings — it’s the right meetings at the right frequency and duration.
  • Meeting load creeps. Without regular audits, meetings accumulate 1-2 per month. This skill is the counterweight.
  • Career items are the first to drop when meetings increase. Deep work protection is career protection.

Research & References

This skill draws from:

  • Cal Newport, Deep Work — Knowledge workers need 3-4h of uninterrupted focus daily for meaningful output
  • Paul Graham, Maker’s Schedule — Meetings destroy maker productivity disproportionately; a single meeting can ruin a half-day
  • Parkinson’s Law — Meetings expand to fill the time allotted; default to 25min or 50min
  • Context-switching research (Gloria Mark, UC Irvine) — Takes ~23 minutes to fully refocus after an interruption
  • Meeting cost formula — A 1h meeting with 8 people costs 8 person-hours + 8x15min context switches = 10h of organisational productivity

File Paths

Type Path
Config .claude/calendar-audit.md
Meeting Memory .claude/modules/meeting-scores.md
Calendar Setup Guide references/calendar-setup.md
Decision Frameworks references/frameworks.md
Config Reference references/config-guide.md
Branding references/branding.md
Weekly Notes Varies by user’s planning setup
Monthly Goals Varies by user’s planning setup