Homebrew E-ink Calendar Display

A digital calendar for the family.

PaperCal running on a Classic

I share a digital calendar with my wife. My mind is like a sieve and if it’s not in our shared calendar it probably does not happen. Our calendar is synced with my phone and computer with all its alarms and notifications. While this works great for my wife and I, our kids never know what today’s planning looks like. We have a paper wall calendar as well, but except at the start of the month, is rarely updated.

Information Radiator

I wanted a way to share our upcoming events with the kids without them needing a phone. My first idea was to show today’s calendar on a computer screen in the living room. Easy enough, but we don’t need yet another bright LED screen in our lives. What about something more discreet? E-ink screens (think e-readers) are an underestimated technology: unobtrusive, use almost no power, with easy-to-read text, even in bright sunlight. Perfect information radiators. What if I could have an e-ink display with our calendar, so the kids know what’s coming up?

Near Christmas 2022, started shipping their small e-ink displays I preordered. The Classic is a monochrome 4.2" e-ink display with an ESP32 and battery for around €85. It can be programmed via USB-C and the Arduino IDE. A nice little display for my calendar project.


Our shared calendar lives on the Synology NAS in our home. This means my phone and computer only sync when we are at home, but that’s more than often enough. This also means I will have to write my own program for the, as all their examples use Google Calendar. Oh, hi there C++, it has been a while!

A few evenings later, PaperCal was born, a small C++ application with minimalist design that shows today’s and tomorrow’s events from a Synology NAS. When PaperCal starts it connects to a Wi-Fi network, gets the current date from a NTP server (the has no internal clock), and loads today’s and tomorrow’s calendar events via CalDAV, after which it refreshes the screen and goes to sleep. When it wakes up, the process is repeated. It has no internal state, it gets what’s needed and sleeps, only to restart a few hours later. Since e-ink displays only need power to refresh, it uses little power.

The wife and children’s approval factor has been great. They don’t always like dad’s geeky projects, but this time I catch them checking the calendar and even making remarks when their hobbies are missing from the list.

Make your own

Feel free to get your own and install the application. PaperCal is open-source and available on github. It should work with any CalDAV server, but I have only tested the Synology one.