Daily Lesson Plans: Turning Notion Schedules into Print-Ready Teacher Briefings

A Claude Code skill that queries Notion for today's teaching schedule and produces a clean, printable Markdown table for each teacher.

Notion at 7:30 AM Is Not a Teaching Tool

Our homeschool day runs on a split schedule: Nurul (Ibu, mom) teaches mornings, I handle afternoons. The full plan lives in a Notion database called Daily Time Blocks — rows for each time slot, linked to lesson plan pages, tagged with which children are involved and which teacher is responsible.

In theory, this is clean. In practice, Nurul is standing in the kitchen at 7:30 AM with a phone in one hand and a three-year-old on her hip, trying to swipe between Notion database views and expand relation fields to figure out what she's supposed to teach first. I was doing the same thing at 1 PM, squinting at nested rollups on a 6-inch screen while the kids waited.

What we actually needed was a sheet of paper. One table. Time, block name, who's involved, which lesson plan to pull up. Done.

What the Skill Does

The daily-lesson-plans skill takes a teacher name and produces that sheet of paper. I type "Dad's lesson plans" or "what should Nurul teach today" and Claude queries our Notion workspace, resolves the teacher name to a Notion user ID (Dad, Matt, and Ayah all map to the same ID; Nurul, Mom, and Ibu to another), determines today's day of the week in Jakarta time, filters the Daily Time Blocks database, and builds a Markdown table sorted by start time with the named teacher's rows bolded for quick scanning.

The output lands at ~/Documents/lesson-plans/lesson-plan-YYYY-MM-DD-teacher.md — ready to print or read on screen.

Design Details

A few things that seem small but matter when you're the one holding the printout:

Weekend rejection. If today is Saturday or Sunday, the skill says so and offers to check Monday instead. I learned this one the hard way — running it on a Saturday morning, getting an empty table, and spending five minutes troubleshooting a non-bug.

Teacher fallback. If a time block has no teacher assigned, it displays "Helper" rather than leaving a blank cell. This happens for blocks like "Free Play" that don't need a specific adult but still need to appear on the schedule so no one wonders where the kids went for 45 minutes.

Bold highlighting. In the output table, rows belonging to the requested teacher are bolded. When I print the full schedule, my afternoon blocks stand out at a glance while I can still see the morning flow — useful for knowing what the kids already covered before I take over.

Lesson plan links. Each row includes clickable Notion URLs for the linked lesson plans. On paper these render as text; on screen they're live links. Either way, you know exactly where to find the details.

In the Workflow

This skill is often the first step in a chain. The print-lesson-plans skill calls it to generate the schedule file, then sends it to the printer, then fetches and prints each linked lesson plan page. But daily-lesson-plans also works on its own — "show me Dad's lessons today" gives a quick screen view without printing anything.

The output file uses A4 PDF front-matter (margins, format, print background) so it's ready for md-to-pdf conversion without modification. Every Markdown file in our system follows this convention. Once the format is standardized, the pipeline stays simple — any file can go from Markdown to paper in one command.

The next piece I want to add is a morning notification: a scheduled routine that runs this skill at 6:30 AM Jakarta time and pushes the result to my phone. Right now I have to remember to ask for it. The machine should just hand it to me.