Plan My Day
Evidence tier: P
Basis: Practitioner time-blocking, calendar review, and daily notes workflow adapted from Hilary Gridley's context directory guidance.
Source IDs: writerbuilder-howiai-plan-my-day, writerbuilder-howiai-context-directory, apple-calendar-skill
Reviewed: 2026-05-12
Interactive daily planning workflow. Syncs all inputs, shows the landscape, collaborates on a schedule, then commits to calendar and daily note.
Prerequisites
icalBuddy— reads all Apple + Google calendars (https://hasseg.org/icalBuddy/)gws calendar— writes to Google calendars (https://github.com/saurabh0719/gws)- A reminders-sync script at
<context-root>/admin/scripts/sync-reminders.sh— syncs Apple Reminders Inbox (user-supplied; simpleosascriptwrapper) - The
apple-calendarskill installed (for native macOS calendar writes via AppleScript)
This skill uses <context-root> as a backend variable. The default backend is Hilary Gridley's "context directory" layout (defaults to ~/context/). Substitute another root if your notes live elsewhere — see references/paths.md for the full path table and override instructions. If the layout does not exist on first run, the skill bootstraps it.
===setup-start===
Execute these steps once, then use the Edit tool to delete the entire block from ===setup-start=== through ===setup-end=== (inclusive) from this file.
- If
<private_calendar_name_list>is still present, ask the user: "Which calendars should I filter out when planning your day? Common examples: holiday calendars, birthday calendars, family or shared calendars, Siri Suggestions." - Wait for a comma-separated list of calendar names.
- Use the Edit tool to replace
<private_calendar_name_list>in this SKILL.md with the user's answer, formatted asCalA, CalB, CalC. - Delete this entire setup block (both marker lines included).
If the placeholder is already gone, this block should have been deleted on a previous run — delete it now and continue. ===setup-end===
Workflow
Step 1: Gather inputs (do silently, show results)
- Run
<context-root>/admin/scripts/sync-reminders.shto pull latest reminders - Update
<context-root>/admin/reminders-organized.mdwith any new items categorized - Run
icalBuddy -f eventsTodayto get today's calendar events
Filter calendars: Only show events from relevant calendars. Ignore the calendars listed in <private_calendar_name_list> (if this placeholder is still literal text, see the setup block above).
Step 2: Present the picture
Show the user:
- Today's fixed commitments — existing calendar events with times
- Open reminders — from
<context-root>/admin/reminders-organized.md - Then ask: "What else do you need to get done today?"
Step 3: Build the schedule together
- Wait for user input on additional tasks
- Propose time blocks around fixed commitments
- Respect energy patterns: deep focus work before 10am, learning/research during afternoon energy dips
- Iterate until the user agrees with the schedule
Step 4: Lock it in (only after user approves)
Add time blocks to calendar:
- Use the
apple-calendarskill'scal-create.shhelper (preferred — ensures native macOS notifications work). Invoke it by skill name, not by filesystem path. - Default calendar for new events:
Personalunless user specifies otherwise - Only use
gws calendar events insertif the user explicitly wants an event on Google Calendar
- Use the
Create daily note at
<context-root>/admin/daily-notes/YYYY/MM-Month/YYYY-MM-DD.md
Daily Note Template
# YYYY-MM-DD — Day Name
## Schedule
| Time | Block | Calendar |
|------|-------|----------|
| HH:MM–HH:MM | Event/task name | calendar |
| ... | ... | ... |
## Running Log
_Entries added throughout the day as things happen._
## End-of-Day Reflection
- What went well today?
- What didn't go as planned?
- What will I do differently tomorrow?
- Energy level: /10
Create year/month folders (YYYY/MM-Month/) if they don't exist. Use zero-padded month with name (e.g., 04-April).
Reminders Files
<context-root>/admin/reminders-inbox.md— raw dump from sync script<context-root>/admin/reminders-organized.md— categorized version (preserve existing categories, add new items)<context-root>/admin/scripts/sync-reminders.sh— the sync script