Did you live your life near the turn of the century by a dry-erase calendar in the kitchen? Do you long for more visibility into your Google Calendar (or perhaps other online calendar)? Then look no further! The solution is here.
This setup runs Chromium in kiosk mode. A modern user agent string keeps Google Calendar happy while providing full ECMAScript and CSS support.
- Raspberry Pi (I used model 3 B)
- 2.5 A USB power supply
- Short HDMI cable - see photo of the back
- 32" LCD TV with HDMI input (I got one on Craigslist for $5)
- Wall-mount for the TV (eBay and Amazon have them cheap)
- Cheap flat USB HUB - see photo of a mounted hub
- 8GB+ SD card
- Wi-Fi or ethernet where you want the calendar
- USB or Bluetooth Keyboard and USB mouse to help with setup
- Double-sided foam tape or something similar
- Small cable ties (a.k.a. zip ties)
- Duct tape
- Get the Raspberry Pi imager for a computer near you with an SD card slot.
- Download the Raspberry Pi OS image or another supported release. Legacy images were previously recommended due to a Wi-Fi bug.
- Use the imager to install the image to the SD card.
- Put it all together: Connect the HDMI cable between the Pi and the TV, connect the USB hub to the Pi. Put the SD card in the Pi, connect the power supply to the Pi, but don't plug it in yet. At this point, you should be able to see where the Pi will fit against the back of the TV. Use the double-sided tape to fix the USB hub to a back corner of the TV. Secure the cables with duct tape and cable ties. Let the Pi float, but keep it still relative to the TV. It might look something like this. Take a look at all the photos. The most fragile part of this arrangement is the micro USB power connector. Be sure the pins on the Pi aren't touching metal.
- Power it up, plug in the keyboard and mouse to the usb hub.
- Do the basic setup for your Pi - select language, keyboard style, time zone, password, etc., and set up the network. You'll use the default user "pi" to run the calendar, and this user has sudo permission by default, which will be needed.
Now select whether you want to set up from the Pi or manage from elsewhere.
curl -L https://github.com/ke4roh/rpi-calendar/releases/download/v8/calendar-install-8.run | bash
- Enable SSH on the Pi either in system preferences or by placing an empty file named
sshon the boot partition before first boot. - On the configuring machine, install Ansible (for Debian/Ubuntu:
sudo apt-get install ansible) and clone this repo. - Run
ssh-copy-id pi@<pi-hostname>to set up key-based access. - Copy
hosts-localhostto a new file namedhostsand replacelocalhostwith the Pi's hostname or IP. - If you want to try the new Wayland-based desktop, set
use_wayland: truein your inventory or pass it via--extra-vars. The playbook then runsraspi-config nonint do_wayland W3(for labwc). Leavinguse_wayland: falseuses X11 viaraspi-config nonint do_wayland W1. ansible-playbook playbook.yml -i hosts -u pi
rebootthe pi- Log in to your Google account on the Pi
- Put a bow on it. You're done!
- The calendar autostarts via
~/.config/lxsession/LXDE-pi/calendar.desktop. Move that file to/etc/xdg/autostartfor a system-wide setup.
Run make package to build the installation archive. This step exercises the
packaging scripts and ensures everything is wired correctly.
