Google Calendar on Raspberry Pi and old TV Set

Stacks Image 6912
Update April 2016: I moved this whole project over to a Raspberry Pi Zero and latest Raspbian Jesse. MUCH BETTER PERFORMANCE. And a Pi Zero costs $5. Same directions apply.

This was a repurposing project. I had an old Raspberry Pi B laying around and an older Coby 18” TV that was gathering dust. Rather than throw them both in the dump i decided to give them both a job. Here’s what you need:

- Raspberry Pi B

- SD Card

- Old TV with HDMI input

- HDMI cable

- Raspbian Wheezy OS You can use Jesse if you want. I’m sorry but Wheezy is a thousand times more stable than Jesse. We don’t need bleeding edge here, we need stability.

Ok. Install Wheezy on the SD card and boot. Now lets make sure we are up to date. The assumption is your pi is hooked to the TV with a keyboard and mouse. You can ssh in if you want but hey ……. you’re hooked to the TV, right?

Ok at a minimum we need to do this. Open the terminal and type:

sudo raspi-config

Now lets make sure we expand the file system and then make sure the Pi boots to the desktop for our user (named pi).
Stacks Image 7796
Stacks Image 7798
Stacks Image 7803
Stacks Image 7805
Now lets update:

sudo apt-get update

sudo apt-get upgrade

Once that gets done lets add IceWeasel which is really Firefox browser without any trademarks..

sudo apt-get install iceweasel

Now click on the Menu button, go to internet and open IceWeasel.

Now go to google and log in to your account. Select calendar.

Stacks Image 6916
Make your calendar your homepage under settings.

Now lets make sure the mouse cursor will disappear and not just hang on the screen.

sudo apt-get install unclutter

Now lets make sure Iceweasel starts at boot.

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

if that doesn’t work or you upgraded to Jessie try this:

sudo nano /home/yourhome/.config/lxsession/LXDE-pi/autostart

add this to the (probably) blank file

@iceweasel

Hit CTL +X then Y to save the file.

Now in the browser address bar type this:

about:config

Then find this line and double click it to change the value to false.

browser.sesssionstore.resume_from_crash

Now we don’t want the screen to blank on us so do this.

sudo nano /etc/lightdm/lightdm.conf

Now add this under [SeatDefaults]:

xserver-command=X -s 0 –dpms


Stacks Image 6923
Almost done, now go back to Iceweasel and get into setting and add the following Add On:

Reset Kiosk

I went into my settings and had it refresh every 300 seconds and to force fullscreen. This will refresh your calendar every 5 minutes.

Now go to IceWeasel and hit the F11 key and this will put you in full screen mode. If you are quick you can hit Menu>Reboot, then hit F11 over IceWeasel.

So now what should happen is your Pi will reboot, and when it does it opens Firefox to your Google Calendar in full screen mode. It will stay on and not blank out which means you can disconnect the mouse and keyboard and hang it on the wall. The extension “Reset Kiosk will refresh the calendar at whatever interval you desire and you are basically done.

Finally your Pi is hooked to a TV with 2 speakers via HDMI. I took advantage of that and added a program called Squeezelite which connects to LogitechMediaServer which means I can stream though the Pi and output to the speakers.

I’m not going to lie to you, Music over cheap TV speakers won’t sound good but it is perfect for Talk Radio. I can stream Talk Radio stations from TuneIn Radio. I won’t get into the squeezelite setup but I have several pages that detail it on my website.

However I will tell you that HDMI audio was choppy on some streams so I set an 80:4 buffer size on the squeezelite command.

squeezelite -o sysdefault:CARD=ALSA -n calendar -s 127.0.0.1 -a 80:4

Now as you see in the picture below it looks like a normal Google Calendar web page ready to point and click on. I’m not going to use a keyboard and mouse so here’s kind of a cool trick. I only want it to display the calendar. Not all the stuff I can’t click on.

Stacks Image 6925
So now lets get rid of all that clutter. So it looks like below. And, hey, I hung it on the wall too!

Stacks Image 10397


Before I was linking to my google calendar and using it for a home page. Now I’m going to use something called an iframe and place it on MY web site.

Open google calendars and click on “Settings” > “Calendars” > “Your Calendar” and look for the part that says “Paste this code into your web site”.

Stacks Image 10401


Click on the blue link within my circle about customizations and select or deselect the elements you wish to see. Once you’ve selected it click the update html button and then copy the code you created.

Stacks Image 10405


Open a web site creation program (I use Rapidweaver) and create a web page with plain html code and paste that code within and then in my case just push the Publish button in the corner which FTP uploads the page to my web host (NameCheap).

Stacks Image 10409


If you really feel crazy you can add another widget like a weather widget.
Stacks Image 11248
Stacks Image 11250


The extension “Reset Kiosk” no longer works on your iframe on your homepage. I design my pages in RapidWeaver. I used a Stack page with a theme named “Blank Theme” and then a stack called “Auto Refresh” and set the refresh rate to every 15 minutes.


Stacks Image 12095


Another good idea (only if you are running without a mouse and keyboard) would be to stop pop up notifications.

Open your calendar page, Go to Settings, then find the link near the top that says “Calendars”, click on the name of your calendar, Find the link that says “Edit Notifications, also near the top and remove the rules which add pop ups. That way you won’t get an annoying pop up you can’t clear.

Enjoy.
3,965