The problem
I’m a coach teaching 12+ classes a week across a handful of boutique studios in Zürich. Every night I’d sit down with Canva, check my Google Calendar — which studio tomorrow, what time, what location? — drag text around a template, pick the right colors, and post my teaching schedule as an Instagram Story.
Roughly 10 minutes. Every. Single. Night.
// What I was doing manually every single night 1. Open Calendar — check tomorrow’s shifts 2. Open Canva — find the latest template 3. Type: THURSDAY · I’M TEACHING 4. Type: 07:00 Challenge Keen (Keen Wellbeing) 5. Type: 12:00 Lucky Punch (Bahnhofstrasse) 6. Type: 16:55 Lucky Punch (Europaallee) 7. Adjust colors, fonts, spacing — export — story
Multiply that out: ~70 minutes a week, almost 60 hours a year, on a task that creates zero unique value. The class times are the class times. Posting them prettier doesn’t change attendance.
10 minutes a night in Canva. Easy to type the wrong studio, miss a class, or skip a night because you’re tired. One wrong time and a member walks into an empty room.
12 seconds. I write “post my schedule” in Claude. It reads tomorrow’s calendar, designs a branded story card, and gives me a PDF. I tap Share → Instagram Story. Done.
This is a small task. That’s exactly why it was worth automating. Small tasks that repeat every night are where you lose entire workdays you never notice losing.
How I built it
The tool stack
No Zapier. No third-party scheduling tool. No subscription. Just Claude with a calendar connector and one skill I wrote once and never touched again.
Step by step
Connect Google Calendar to Claude
I set up the Google Calendar MCP connector in Claude. Two minutes, free. This gives Claude direct read access to my events — names, times, labels, locations.
Tag my teaching shifts in the calendar
Every class I teach has a consistent format in my calendar — class name + studio location. That’s all Claude needs to tell a teaching shift apart from a meeting, an admin block, or personal time.
Write the “post my schedule” skill
The skill instructs Claude to fetch tomorrow’s events, filter for teaching shifts, sort by start time, and inject them into a branded HTML template. The output is a PDF sized 1080×1920 — ready for an Instagram Story.
Type three words. Share.
I open Claude and write: post my schedule. Twelve seconds later I have a PDF. Share → Instagram Story → done. No prompt engineering, no “act as a designer”, no formatting back-and-forth.
The skill itself took about 40 minutes to build and test the first time. It has run every night since without changes.
What the skill actually does
Two parts. First, fetch and filter. Second, render. Plain logic:
# Plain logic of the “post my schedule” skill 1. Fetch Google Calendar events for tomorrow (00:00–23:59) 2. Filter events that match my teaching format (class name + studio location) 3. Sort by start time 4. Format into a clean list: — Time block — Class name — Studio location 5. Inject into the HTML story card template — Brand navy & red, Inter / Anton fonts — Day banner: “THURSDAY · I’M TEACHING” — Card per shift, color-coded by studio — “Join me · @daniel_dmitriouk” footer 6. Output PDF, 1080×1920, ready for Stories
The template is fixed. Only the class list changes each night. That’s why it’s instant — Claude isn’t designing anything, it’s filling out a form it already knows.
The result
Numbers, after the automation
The more useful number is what happens across the team. Across a 5-coach team that’s nearly 300 hours of recovered time annually — seven extra weeks of work each year, on this one task alone. The class schedule isn’t better because a human typed it into Canva. It’s just posted.
The other thing I noticed: consistency went up. Every coach now posts on time, every night, in the same format, with the same visual style. That’s worth something for brand recognition even if it’s hard to put a number on.
What I’d do differently
If I were rebuilding it today I’d add direct posting via the Instagram Graph API — skip the manual share step. The 12 seconds could be 0. I haven’t done it yet because tapping share gives me a 2-second sanity check before it goes live. For a larger team, full automation makes sense.
Is this worth building for your studio?
If you or your coaches post schedules manually: yes. Build time is 2–3 hours the first time if you’ve never built a Claude skill. After that it runs itself. The only maintenance is if your calendar naming format changes.
Don’t use Google Calendar? This still works — any calendar with an API or a structured export. Mindbody schedule data, for example, is accessible to Claude directly.
The bigger point isn’t really about schedules. Any task you do the same way every day or every week is a candidate for this kind of automation. Schedule posts happened to be the first thing I tackled because it was visible and annoying. Once you build one of these, the next one takes half the time.