Over the past few weeks, I’ve developed a custom e-ink family calendar as my first Raspberry Pi project. This calendar combines hardware elements inspired by MagInkCal with layout concepts from MagInkDash, resulting in a unique and functional display for our home.

E-Ink Calendar that automatically syncs to Google Calendar

Features

The e-ink display updates hourly and when content changes, showing the calendar, weather, and interactive elements.

  1. Shared Google Calendar Integration: Displays appointments from a shared Google Calendar.
  2. Dynamic Background Images: The calendar shows random daily background images from popular children’s books, adding a delightful surprise element each day.
  3. Interactive Character Elements: In the bottom left of the display, different characters from Max Velthuijs‘ beloved Frog books can pop up to comment:
    • Rat provides context and commentary on current calendar items.
    • Haas (Hare) shares an interesting daily fact, sparking curiosity and learning.
    • Kikker en Beertje (Frog and Bear) displays messages sent to a custom Telegram chatbot, allowing real-time family communication.
  4. Weather Integration: Syncs with Open-Meteo, a free weather service to display up-to-date forecasts alongside calendar events.
  5. 4-Day Display: A 4-day outlook in a landscape format provides a comprehensive view of upcoming events and activities.

Hardware and Setup

For those interested in replicating or adapting this project, here’s a detailed breakdown of the hardware components:

  1. Raspberry Pi: I used a Raspberry Pi Zero WH, perfect for this low-power application. Unlike the original MagInkCal project, mine is connected to a power adapter for continuous operation.
  2. E-Ink Display: A Waveshare 12.48″ tri-color (black, white, and red) e-ink display.
  3. Software Stack:
    • Unlike the original MagInkCal project, I generate the calendar webpage on a separate server.
    • The Raspberry Pi runs a headless Chrome instance to capture screenshots of the generated webpage.
    • A Python script processes these screenshots and sends them to the e-ink display.
    • ChatGPT API is used to generate character dialogues and daily facts.

The e-ink display updates hourly and when content changes, showing the calendar, weather, and interactive elements. Unlike battery-powered versions, this setup uses a power adapter for continuous operation.

Project Outcome

The calendar successfully displays our family schedule, weather forecasts, and interactive elements. Beyond serving as a practical family organizer, it has become a daily source of excitement and learning for our daughters (ages 2 and 4). Every morning, they rush to see what interesting facts Haas has to share and what new background image from their favourite books is displayed.

Credits

This project was inspired by and built upon MagInkCal and MagInkDash by speedyg0nz.

Similar posts

If you like this post, you may also like one of my other posts:

E-Ink Family Calendar: a Raspberry Pi project