ESP32 E-Ink Google Calendar Display

We wanted to have the family calendar somewhere visible on the wall, while still keeping it digital.

I put together an ESP32 powering an e-ink display which fetches data from the Google Calendar integration in HA. The display fits nicely in a picture frame and is battery powered. The ESP32’s deep sleep function ensures low power consumption. With a 3000mAh battery, you can go months between charges.

I first tried to implement the display using ESPHome, but unfortunately I could not find proper driver support for the display I used and, more annoyingly, coding up the rendering logic in C++ embedded in a yaml file was just painful. Don’t get me wrong, I love ESPHome, but it was not the right tool for this project. Going native also allowed me to fully utilize Claude Code, speeding up the development process.

The two most complicated parts were the logic to identify how many events I can display per day before overflowing and writing a template sensor in Home Assistant to expose the calendar data.

You can find the code on my github: GitHub - chpeer/eink-calendar-display: ESP32 e-ink calendar display integrated with Home Assistant

Hope this kindles some ideas!
Chris

6 Likes