Recently I purchased my first home. In the kitchen there was a small TV wall mounted however the TV itself was faulty so I was wondering, what should I do with this wall bracket since I didn’t really want a TV in the kitchen area. Then it dawned on me, instead of using a paper calendar with tiny little boxes to write things in I want my Google calendar on the wall.

To tackle this instructable you should have a general understanding of home networking and computing, some linux experience wouldn’t go astray but is not really necessary. If you run into something you don't understand just remember google search is your friend.

Equipment you will need
  • Home network (wireless if you can't run a cable to the Pi)
  • Raspberry Pi (I've used the model B)
  • SD card 2GB or larger
  • AC Adaptor (I used a USB wall charger for mobile phones check here http://elinux.org/RPi_VerifiedPeripherals#Power_adapters)
  • Micro USB cable
  • USB keyboard and mouse
  • USB wireless adaptor (MAKE SURE IT IS COMPATIBLE OUT OF THE BOX http://elinux.org/RPi_USB_Wi-Fi_Adapters)
  • HDMI cable
  • Wall mountable HDMI capable monitor or any monitor with some kind of HDMI converter
  • Wall bracket for your monitor

*I will not be showing how to wall mount your monitor as the bracket was already on my wall*

Step 1: Raspberry Pi Setup

First we'll setup the Raspberry Pi, to do this you'll need to have Raspbian installed. You can buy a Pi with Raspbian pre-installed or you can use a 2GB or larger SD card that you already have.

I am using an SD card I already have. Plug the SD card into your computer and download the latest Raspbian http://downloads.raspberrypi.org/raspbian_latest

I'm using windows so I unzipped the file and used win32diskimager (http://sourceforge.net/projects/win32diskimager) to write the Raspbian image to the SD card. 

If you are still not sure there is a tutorial here http://elinux.org/RPi_Easy_SD_Card_Setup

Ok now we have Raspbian installed it's time to get our Pi up and running, plug in your SD card, Wi-Fi dongle, USB keyboard, Ethernet cable to your router, HDMI to your monitor and lastly the micro USB cable to the power socket. The first time you boot up you'll end up with the configuration screen.

The changes you need to make are:
  • Expand the filesystem so Raspbian utilises the entire SD card
  • Change your password
  • Enable boot to desktop
  • Set your language, region and time zone
Go into advanced options
  • Change your hostname so you can recognise your Pi on the network.
  • Enable SSH so you can access your PI from a computer on your network.
  • Select finish which should restart your Pi.

Step 2: Keyboard and updates

If you are in the US or Australia like me you will want to change the keyboard layout to US.
To do this you’ll need to change a file by opening your terminal and entering the command:

sudo nano /etc/default/keyboard

Use the arrow keys to move the cursor and change the gb to us.
Now save the file by pressing ctrl + X and Y to save changes

Now to update your Pi, type the following commands:

sudo apt-get update
sudo apt-get upgrade

Press y and hit enter to download updates (this will take ages so go have a coffee/beer).

Step 3: Wireless Setup

If you just want to use Ethernet you can skip this step.

To get your Wi-Fi dongle working you may need to edit the wpa_supplicant.conf file by typing

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Then make it look like this:

    pairwise=CCMP TKIP
    group=CCMP TKIP
    ssid="your network ID in quote marks"
    psk="your network password in quote marks"

To save the file press ctrl + x then Y and enter to save

Restart the Pi by entering:

sudo reboot

You should be able to see if your Wi-Fi dongle has an IP address with the command

sudo ifconfig

You should get something like this

wlan0     Link encap:Ethernet  HWaddr 64:66:b3:06:43:1b
          inet addr:  Bcast:  Mask:
          RX packets:912384 errors:0 dropped:121692 overruns:0 frame:0
          TX packets:706463 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:694114055 (661.9 MiB)  TX bytes:71017681 (67.7 MiB)

Step 4: Iceweasel

Now we’ll install a browser that actually displays your google calendar properly. Iceweasel is a derivative of Mozilla’s Firefox, to install enter the following command.

sudo apt-get install iceweasel

Type y and hit enter to complete download and install.

Once complete Iceweasel should pop up in the menu under internet, open it so we can start configuring. First open up your google calendar and save the password in case you get logged out at some point. Now set google calendar as your start page.

Now we need to disable restore pages after crash in case of power outage google calendar might not show up by itself which is annoying if you have no KB/Mouse connected.

Type in about:config in the address field and hit enter.
Now find the "browser.sessionstore.resume_from_crash" line and double click to change it to false.

Hit the F11 key to go fullscreen and hover your mouse at the very top of the screen then close the browser once the x appears in the top right corner.
Re-open the browser and it should open to your google calendar and still be full screen.

We also want Iceweasel to start automatically so we’ll need to change the autostart options.

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

add @iceweasel to the list
now press ctrl+x the Y and enter to save the changes

Step 5: Cursor and powersave

The next step is to get rid of that pesky mouse cursor and stop the screen from going to powersave/sleep mode.
First we’ll install Unclutter to get rid of the cursor when it’s not in use.

sudo apt-get install unclutter

Now we need to edit the /etc/lightdm/lightdm.conf file to prevent powersave/sleep mode

sudo nano /etc/lightdm/lightdm.conf

Move down to: [SeatDefaults]
Change this line:

to this:
xserver-command=X -s 0 –dpms

now press ctrl+x then Y and enter to save the changes

Step 6: You're done :D

Now it’s all setup you can plug it in to your wall mounted monitor and turn it all on.
If something stops working just unplug the pi then plug it back in, hey presto she starts again.
Unfortunately my spare HDMI monitor does not have the screw holes for a wall mount bracket.
I have decided to use an old VGA monitor I had laying around, just have to wait for the HDMI to VGA converter.
This would be awesome if done with a touch screen, not that it already isn't!
Agreed! It would be so much easier to add events! I wonder, how easy is it to get a touch screen to work with Raspberry Pi?
A lot of ELO's touchmonitors have open source drivers, I assume one could work them into working with the pi's ARM CPU.
<p> Oh, can't fault me for necroing a thread about serial connected touch monitors. Work had a couple of Planar 15&quot; touch monitors not being used. </p><p><a href="http://www.elotouch.com/files/install/Elo-Linux-USB-v3.5.2_Installation-Instructions.txt" rel="nofollow">http://www.elotouch.com/files/install/Elo-Linux-US...</a><br> Have installed via pci card to a fedora desktop with success. Will be looking into but presuming it will work, when I get to that step. I only just picked up a Pi B second hand, still naive and taking my time. I also picked up a USB to serial adapter on some delorme gps boxes I picked up. <br> Will update on success if there's any input. Any moral support welcome.</p>
Definitely doable but pricey and I didn't see if any screens had mounting holes. <br>http://www.ibm.com/developerworks/linux/library/l-playscreen/ <br>sudo apt-get install matchbox-keyboard
You could use a touch screen adapter. <br>I don't know where you can buy outside my country (Brazil), but i found this: http://www.magictouch.com/addon.html <br> <br>Maybe you can get the idea.
I agree a touch screen would be awesome. You can just add events with your phone, tablet or computer and they pop up on the screen after several minutes.
Will the same thing work with iCloud calendars, or will iCloud require you to keep entering your password again any time the computer restarts?
Personally, i have my iphone calendar automatically synced up to my Google calendar so that by default any new events i make on my phone are synced there. Consider that.
Usually, iCloud does not require my password when i restart my PC. <br>Just mark &quot;remember me&quot; and you're good to go. <br> <br>But, sometimes, it does require my password while i'm using it. <br> <br>And i saw somewhere someone syncing iCloud with GCalendar. Can't remember where. <br>
I don't have icloud, it should behave exactly as it does of your computer.
<p>I had seen this online for quite some time and always thought it was cool and then decided to build it up myself. The latest MagPi magazine also features it. I liked it but run it headless and got determined to get rid of all the stuff you can't click on. Then I figured out I could embed an iframe into my own web page and upload to my web host. Then I figured out I could slap a weather widget on top of it to make it a little more functional. However when i put it on my own page the recommendation in the comments here of using Reset Kiosk no longer worked. I found a Stack for Rapidweaver which resets my page every 15 minutes. Details here: http://www.hagensieker.com/picalendar/index.php</p>
<p>This appears to be working great. </p><p>But how often does it refresh? and can i control that in iceweasel?</p>
<p>I spent many hours fiddling with this to get it to refresh automatically on a schedule, without losing the login credentials. Finally, I found this addon, and it works perfectly. Hope this helps.<br><br><a href="https://addons.mozilla.org/en-us/firefox/addon/reset-kiosk/" rel="nofollow">https://addons.mozilla.org/en-us/firefox/addon/res...</a></p>
<p>Awesome, thanks for posting this... I was just looking for the same sort of thing.</p>
<p>Update: I found that the Reset Kiosk addon didn't do what we need here. It reloads the page after a set period of inactivity, but if there hasn't been any activity, it does nothing. I didn't find a way to override that.</p><p>But...I found this addon, which does a reload on a fixed schedule always. It apparently remembers its settings across a boot, making it perfect for this.<br><br>https://addons.mozilla.org/en-US/firefox/addon/reloadevery/</p>
<p>My problem is that I cannot get Iceweasel to autostart. I am running<br> Raspbian Jessie on my RPi. I have my RPi configured to start in the <br>GUI. I am a noob, so please keep your answers simple (especially with <br>your directions for typing in the terminal).</p><p>I followed the instructions and typed in the line:</p><p>sudo nano /etc/xdg/lxsession/LXDE/autostart</p><p>and then I added @iceweasel to the bottom of the list, but it didn't autostart.</p><p>Then I found some info that said I should add -pi after LXDE, so I typed in:</p><p>sudo nano /etc/xdg/lxsession/LXDE-pi/autostart</p><p>and<br> then I added @iceweasel to the bottom of the list. But still, nothing <br>will autostart. What am I doing wrong? It's frustrating because this <br>should be one of the easiest parts of this instructable. Thanks in <br>advance.</p>
<p>I'm having this same problem. I'm using Raspbian Jessie.</p><p>In sudo nano /etc/xdg/lxsession/LXDE/autostart</p><p>... adding @iceweasel to the bottom and the top of the list didn't work.</p><p>Did you get it working? If so, how?</p><p>Thanks!</p>
<p>sudo nano ~/.config/lxsession/LXDE-pi/autostart</p><p>add @iceweasel</p><p>ctrl+x </p><p>y</p><p>enter</p><p>after exiting the file start your x environment</p><p>startx</p><p>that works for me</p>
<p>Jorgetwin... Thank you very much, this worked for me as well. </p>
<p>An awesome project to work on. I made this one for the office at work. </p><p>I used the Raspberry PI and managed to learn and improvise most of the build with the Raspberry. </p><p>I put a few add ons with Iceweasel; Tryagain - in case the connection is not picked up immediately and a simple google calendar interface. </p><p>I will have to mount it to the wall and hide the wires.</p>
<p>I made mine landscape mode with extra cedar that I had, gave it a rustic look.</p>
<p>Great guide! Here are some of the things I did differently:</p><p>- Used chromeium which has support for command line args so that i could do: </p><p>@chromium --noerrdialogs --kiosk --homepage 'https://www.google.com/calendar/render#h%7Cmonth'</p><p>- Wrote css to make the calendar take up the entire screen. I have no mouse or keyboard connected so I don't need the controls. I use the custom view feature of google calendar to always show the this week and the 3 next. </p><p><a href="https://dl.dropboxusercontent.com/u/15611034/calendar.css" rel="nofollow">https://dl.dropboxusercontent.com/u/15611034/calen...</a></p><p>- Bought a relay and a PIR sensor and wrote a small python script to make the monitor motion activated with a timeout of 5 minutes. Relay is not strictly necessary but I save a little standby power that way.</p><p>I still need to create a frame for it as i stripped the old casing of the monitor as it was quite ugly :)</p>
<p>Could you provide the details on the relay and python bits?</p>
Hey, could you please share your python code and some simple schematics for your sensor system. Thanks beforehand!
<p>Hi Brian, I build it too, but I would love to get ride of the google stuff around the calendar. Unfortunately I don't know how to use your css file. I made a calendar.css file out of the code, but how to activate....</p><p>Hope you are still looking at these pages</p>
<p>I created a Stylish (CSS user stylesheet) my my purposes, which may help!<br>https://userstyles.org/styles/117409/big-screen-team-google-calendar</p>
<p>Hi,</p><p>I am not interested in syncing with a phone, but just displaying the google calendar that will up date when we make changes via a phone or PC. We also use wireless for all devices since our location is not wired for ethernet. Would this procedure still work?</p><p>Thanks</p>
I just did this and it seems to be working great. this is the first able that I have done. I am going to next mount the monitor flush in the wall where we used to have a whiteboard calendar. Thank you for the great write up and thank everyone else for the updates for the latest builds.
<p>I loved this. I liked the fact I did it long after the initial entry to find all the great tweaks people did. I too only did the first half of step 5, I installed xscreensaver with unclutter. I used the Logitech wireless touch keyboard wich stores nicely on top of the monitor so it is hidden well, I like someone else, created a home calendar and shared mine and my wifes calendar. I installed it over what used to be a wall phone in our kitchen and everything dropped into the wall nice and neat it was a plate not a box. I will fix the power cord later. My children like it to see what they have going for the day and are requesting a touch screen upgrade. Again great instructable.</p>
<p>Works well.... thanks very much.</p>
<p>I really enjoy doing this project. Thank you for clear instructions :)</p>
<p>I am Currently working on this project and wanted to say that on the latest version of raspbian, it will automatically detect a wifi dongle and show you a list of networks in the top right corner when you right click on the wifi symbol. Also, in the version that this tutorial was made with, there is a wifi configure application. Perhaps setting up wifi should be done before you try to fetch updates from the Internet. This is a great idea that I can't wait to finish! </p>
<p>hi</p><p>done straight through first time, excellent guide</p><p>has anyone thought about toggling through different webpages on a loop?</p><p>maybe different tabs of IceWeasel/Chromium ?</p>
<p>I've just done this and to make the screen usage work better for Google Calendar on a really large screen (60 inches) for our office calendar, I created a user stylesheet which you can easily install with Stylish:</p><p>https://userstyles.org/styles/117409/big-screen-team-google-calendar</p>
<p>This is fab. I run a group who meets twice a week and uses google calendar to record what we're doing each week. The regular calendar view is therefore quite empty. Is there a way to list just the next few events in a large font so it's more like an airport departure board?</p>
<p>If you go to the mobile version of google calendar, its just a list of events and the ability to add new ones.</p>
<p>Sorry to post on an old instructable. This is a great idea especially with all the parts I have lying around. I just can't seem to get Iceweasel to start on boot. Tried several things but no joy. Any ideas?</p>
Use this code at the autostart section<br>sudo nano /etc/xdg/lxsession/LXDE-pi/autostart<br>Notice the -pi
I have made this wonderfully without flaws. Thanks a lot. But two questions though, is this project considered an IOT project and why. Thanks again.
<p>What can I do to modify this if I only have access to older computer monitors with VGA and don't want to buy the adapter?</p>
<p>Done! Nice tutorial! However, with step 5b, I got some problems. When rebooting, the Pi never started the GUI (could not see the OS). I only got a blank screen with a blinking cursor. To fix this issue, I skipped step 5b, i.e. I never edited the lightdm.conf with the &quot;xserver-command=X -s 0 &ndash;dpms&quot;. Instead, I installed xscreensaver, and rebooted:<br><br>sudo apt-get install xscreensaver</p><p>sudo reboot<br><br>Then, I opened the xscreensaver settings via the GUI (top right corner menu button &gt; Preferences &gt; Screensaver) and disabled the screensaver. I added some pictures to show the steps.</p>
<p>ooops... I meant the top LEFT corner menu button. Sorry. :)</p>
<p>Step 5(b) has torpedoed this project for me three times now (what's the definition of insanity, again?). Upon reboot, I get a blank screen with a flashing cursor in the upper left-hand corner. Any help would be *greatly* appreciated!</p>
<p>Same here! The Raspberry Pi starts, gives some code as it use to do (code flashing by on the screen) but instead of loading the GUI, I get a blank screen with cursor. I have tried via HDMI and via s-video and I get the same results. What kind of Pi do you have, and have you sorted it out? Mine is the old rev 2 model (i.e. not the new 1 gb version). It's the third time I'm trying this now, and I have created a backup of my SD-card where I've done all the steps except 5b. Saves some time anyway... :P I'll continue trying till I get rid of that damn blank screen with the blinking cursor!</p>
<p>I have been searching for a way to get iceweasel to either pause and wait for an internet connection or continually retry to obtain an internet connection when rebooting and have been unsuccessful. Anyone know of a good way to do this?</p>
I'm having a problem when I try to download ice weasel it gives me a bunch of 404 messages. I'd love some help!:)
I followee the steps and everything works fine apart from the iceweasel browser does not start when the pi boots up. I have to manually open it from the desktop. Any help?
<p>This happened to me too.</p><p>There are two places where you may have to put it into autostart. </p><p>the one listed and also </p><p>sudo nano /etc/xdg/lxsession/LXDE-pi/autostart</p><p>notice the &quot;-pi&quot;, this fixed it for me.</p>

About This Instructable


2,152 favorites


More by Piney: Tor-Pi Exit Relay (without getting raided) Raspberry Pi Wall Mounted Google Calendar Raspberry Pi Multi-Room Audio (Mobile/Tablet/PC Controlled)
Add instructable to: