CodingStudio Calendar
One calendar. One source of truth. The whole team finally sees the same schedule.
07.2026
View Project
I got assigned to make our academic calendar.
Not a big dramatic mission. Just: we need one place for classes, rooms, who’s teaching what, and when — across our locations. The kind of thing every ops-y team eventually needs, and usually ends up solving with a spreadsheet that slowly becomes a monster.
So I did what a lot of people would do first.
Round one: Claude Cowork + sheets
I tried building it with Claude Cowork and Excel / Google Sheets.
On paper, that should’ve been enough. Recurring schedules, rooms, holidays — spreadsheets can do that. People have been running schools and studios on sheets for years.
But using it felt clunky almost immediately.
Every change had a cost. Want a slightly different recurrence? Want a cleaner way to show who’s in charge? Want to stop people from overbooking a room? Suddenly you’re in formula land. Nested logic. Hidden assumptions. “It works if you don’t touch column G.”
I’m not a data guy who lives in the deep trenches of Excel. I can make a sheet work. I can’t make a sheet feel like a product. And I kept hitting the same wall: the tool was deciding what we could do, instead of us deciding what we needed.
Flexibility wasn’t there. Or maybe it was — buried under formulas I didn’t want to own forever.
Then the deadline showed up
My CEO asked me to have the calendar ready by Monday.
That kind of deadline clarifies things. I didn’t want to spend the weekend babysitting cells and praying nothing breaks when someone adds a new class.
So Monday morning, first thing after waking up, I opened Cursor and decided to just build the app.
Not a prototype forever stuck in Notion. Not another sheet with nicer colors. An actual product our team could use — something I could shape however we needed, without asking Excel for permission.
Four hours to ship, six hours to make it feel finished
I spent about four hours coding an end-to-end calendar system.
Then another six hours polishing: the edges, the flows, the stuff that makes a tool feel like something a team can trust instead of something a developer demoed once.
By the end of that stretch, we had a real single source of truth for our academic schedule.
That’s the part that mattered most to me. Not “I built an app.” More like: the team finally has one place to look.
What the app actually does
Here’s what we use it for day to day:
- One shared calendar. Month view, Monday–Sunday. Weekly classes, monthly sessions, one-off events, and national / collective leave holidays — all on the same board. No more “which sheet is the latest?”
- Locations and rooms with capacity. Schedules are tied to campuses and rooms. If expected guests blow past room capacity, you see it immediately. Overbooking stops being a surprise.
- People in charge. Every schedule can show who’s responsible. At a glance. No pinging three group chats to find the PIC.
- Roles that match how we work. Admins run the structural stuff — locations, rooms, holidays, invitations. Members create and edit schedules. Viewers can look without breaking anything. Invite-only access, no public signup.
- Board and table views. Same data, different lenses. Sometimes you want the month. Sometimes you want the list.
- PDF export. Month or full year. Useful when someone needs something offline, printable, or easy to forward.
It’s still our tool. Built for CodingStudio’s space. But the idea is simple enough that it could be any team’s mandatory-schedule system: what’s on, where it runs, who’s responsible.
What I took away
Sheets are great until they aren’t.
The second your schedule logic starts needing real product behavior — roles, capacity, ownership, exports, a UI people don’t fear touching — you’re no longer “just managing a spreadsheet.” You’re maintaining a fragile app that happens to live in cells.
Building our own calendar wasn’t about being fancy. It was about control. About being able to say yes when the team asks for something weird and useful, without inventing another cursed formula.
Four hours to make it real. Six hours to make it livable.
Best Monday morning I’ve had in a while.
Live at: https://calendar.codingstudio.id
Contributed as Design Engineer
Solo Project
Made using Nextjs, MantineUI, Supabase, Motion
© 2026 Kevin Bryan.
KEVIN
BRYAN