Raspberry Pi calendar

How to make a Raspberry Pi calendar

Got room in your schedule for this project?
  • by Ash (61)
  • Time to complete: 30 minutes

You'll never need to buy another calendar again. This is a Raspberry Pi calendar that can sit on your desk, nightstand, or even be mounted on the wall. The Pi is synced with Google Calendar—making it easy to update from any device, display events for your family, and see changes in real time! Want to update your calendar? Just use your phone!

We only need a few things to get started. You'll need a Raspberry Pi, I'm using a Raspberry Pi 3 B+ model. As far as a display is concerned, you can use any screen you like. I have a small Eyoyo screen that connects using HDMI. It comes with a small stand, making it a perfect desktop calendar. However, you could easily go one step further and use a wall mounted display.


We'll need a fresh OS to get started. I'll be using Raspbian. If you'd like to join me, visit our guide on how to install and update Raspbian.


Connect the screen and turn on the Pi

Once you have Raspbian installed, it's time to plug in our peripherals. Connect the screen to the Pi and plug in the power adapter.


When the Pi first boots, Raspbian will prompt you through a setup process. It typically guides you through creating a password, defining a timezone, and connecting to the internet. Once you have completed this phase, you'll be presented with a desktop. It’s highly recommended to change the Raspberry Pi host name.

We need to enable SSH on the Raspberry Pi. This is easy with Raspbian. Open the start menu, highlight Preferences, and choose Raspberry Pi Configuration. Under the Interfaces tab, enable SSH and select OK. Restart the Raspberry Pi.


Launch the chromium browser and access https://calendar.google.com. Log into your Google account and save the authentication information in Chromium. This will ensure your account is logged in each time the browser is launched.


Create a custom bootup script

Next, we'll tell the Pi to open Chromium to the Google Calendar page every time it's powered on. To accomplish this, we will create a startup script that launches everything for us.

Create the startup script

You can use any text editor you like, I'll be using Notepad++. Create a file with the following script.

Note: Chromium has trouble rendering the Calendar properly, this is resolved by running Chromium with a different user agent. You don’t need to do anything extra for this, I included the user agent information in the script below. Feel free to experiment with other user agents.

chromium-browser https://calendar.google.com --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201" --disable-infobars --disable-session-crashed-bubble --kiosk &

Enter a filename like startup and save it with a .shfile extension. Drop the file in the /home/pi/ directory.

Edit the autostart file

Now we need to tell the Pi to use our new script when it turns on. We'll do this by editing the autostart file. Connect to the Pi using a terminal, like PuTTY, and run the following command.

sudo nano ~/.config/lxsession/LXDE-pi/autostart

At the bottom of the file, include the following string. Be sure to replace startup.sh with the filename you chose.

@sh /home/pi/startup.sh

Save the file using ctrl+x, press y, then enter.


Disable sleep mode

The Pi will disable the screen display automatically. It's rather difficult to check a calendar that isn't there, so we'll need to turn it off entirely. To do this, connect to the pi using a terminal, like PuTTY, and run the following command.

sudo nano ~/.config/lxsession/LXDE-pi/autostart

At the bottom of the file, include the following.

@xset s 0 0
@xset s noblank
@xset s noexpose
@xset dpms 0 0 0

Save the file using ctrl+x, press y, then enter.


We will need to hide our taskbar so it doesn't interfere with our display. Right click an empty place on the task bar and choose Panel Settings. Under the Advanced tab, select the option to Minimize panel when not in use.


Hide the cursor on boot

We’ll use a program called unclutter to hide our cursor. Install it using the following command.

sudo apt-get install unclutter

Next we'll need to update our autostart file. Access it again using the following command.

sudo nano ~/.config/lxsession/LXDE-pi/autostart

At the bottom of the file, include this string.

@unclutter -idle 0

Save the file using ctrl+x, press y, then enter.


Finished Raspberry Pi calendar

Restart the Raspberry Pi for a final test of your work. If everything works, the calendar should launch in full screen with no errors and a hidden cursor.

Congratulations! You've created your own automated Raspberry Pi calendar. Now it’s time to set it up and enjoy your new device. Good work!