An every day 'Every Day Calendar'

JP’s a Dad now 😳 February 15, 2026
Source

You can skip ahead to making your own, if you like!

A long while ago I splashed out on an Every Day Calendar. I loved the idea of taking pride in routine, I adored its beautiful & simple physical interface for that, and Simone Giertz's videos sparked joy every time I saw them, so backing her kickstarter was a hard choice not to make.

My one reservation though, was that it missed an online component — I wanted it to be truly every day, not just the ones when I was at home. But I like hardware hacking, and knew Simone was releasing all the code for the calendar (😍), so figured I'd be able to make that happen somehow. The spark of inspiration didn't come though, and I happily enjoyed the physical calendar on the wall in my office.

…until this January, when I discovered the lovely goals.garden site — Sri had clearly been inspired by Simone's Every Day Calendar too! This was perfect for me; it launched right on the new year, while I was abroad travelling with my Dad, so it meant I could start my new years' intentions without my physical calendar and it was built on top of my favourite technology of the moment: ATProto (the tech behind Bluesky).

This weekend, gloriously timed with Sri's fresh improvements to goals.garden, I finally put together all the pieces I needed to internet-enable my Every Day Calendar! It ended up being simple enough that I bet you could do it too.

Building on ATProto

Building in the ATProto ecosystem is fun. You entirely own your own data, so there are no developer accounts with large companies to register for, or API limits or restrictions on what you can do. Sri built the goals.garden site on ATProto, so it stores little data records on the account I own to track my daily completions. I can edit those records directly, delete them, add to them however I like, and goals.garden displays what it finds — instant interoperability.

In fact this flexibility was the spark that meant this could happen at all: I needed the data in a specific format to suit the excellent microcosm APIs and the tiny processor I added to my calendar… so I just edited my own records to include the AT URI I needed. I didn’t need permission from anyone else to do that, or to take time on coordinating when I wanted to experiment. When it worked, I reached out to Sri to find out if he'd be kind enough to add these same attributes to his app. He was! (Thank you Sri!)

Get making

!The inside of my Every Day Calendar, with a QT Py ESP32-S3 microprocessor soldered into four of the existing pads on the circuit board

This is the entirety of the physical changes I made to my calendar. You’ll need a soldering iron, a pair of wire-strippers, an Adafruit QT Py ESP32-S3 (£12) and half a Qwiic/Stemma QT cable (£1).

You can follow the codebase’s guide to solder things up, flash the firmware, and get your calendar sync’d up.

Do let me know how you get on! I’ve a busy life at the moment (more on that soon), but I’ll do my best to help you if you’re having trouble.

Huge thanks to Simone for the hardware, Sri for the website, Momin for fun firmware improvements, Microcosm for their excellent APIs, the ATProto team, and the thousands of engineers who built the hundreds of open source libraries this is built upon.

Discussion in the ATmosphere

Loading comments...