Digital wall calendar
With a little cunning, you can transform your Pi into the perfect date-checker.
Nate Drake is the most organised man you’ve never met, discover his secret and build your very own Pi-based digital wall calendar.
One staple in films such as BacktotheFuture and TimeCop is that everyone has a handy digitalplanner panel in their living room showing their appointments for the day. While we already have calendars on our smartphones and tablets, but now, thanks to the Raspberry Pi, it’s possible for you to have an economic wallmounted calendar in your home or office too.
Given that we have just tacitly admitted we could use the calendar app on our phones instead, is this project merely a novelty, or are there any advantages to it? Well, there’s always the look of the thing. A calendar mounted on a wall can certainly be more aesthetically pleasing than many mobile phone displays. Some people on the internet have gone to great lengths in this direction, such as mounting it tastefully in a wooden frame or building it into a mirror.
The main advantage, however, is that it enables you to share a calendar with other people, by putting it in a public place, such as your living room. Your family can see your own appointments, and you can make sure to schedule your commitments around theirs.
In the workplace, you can use calendar views, such as Agenda in Google Calendars, to organise meetings and assign tasks to your colleagues.
Crafting your calendar
For this project, you need a Raspberry Pi with internet access. In the interests of saving on cabling and space, it’s best to use the Raspberry Pi 3, which has integrated Wi-Fi.
You also need to choose a monitor. One excellent option is the Official Raspberry Pi Touchscreen Display ( see Choosing a Monitor, over the page) but ultimately any compatible monitor will do. This isn’t a DIY tutorial, so please only attempt to mount the Pi and display if you are comfortable with using a drill and installing brackets. If the display comes with a stand, there’s no reason it can’t be placed on a desk or table.
This is also a good time to start measuring cable lengths, so you can be sure both the monitor and the Pi will have power wherever they’re mounted.
Once your equipment is in order, you need to consider the type of calendar you wish to use. If you and your family or colleagues already have a calendar you share, you can start following the tutorial right away.
If that’s not the case, you may wish to create a single calendar for this purpose. If you’re using Google Calendars, follow the steps at http://bit.ly/1HKeoCL to do this. For Mac users, visit http://apple.co/2nz2w1v to create a new iCloud Calendar. Outlook users can also create a calendar by visiting http://calendar.live.com.
It’s not that important which calendar service you use, provided it can be displayed in MozillaFirefox, which we’re using for this project. Try to give the calendar a distinctive name, such as Smith Family Calendar, so everyone using it knows it’s distinct from their personal calendar.
Importing calendars
If you do have an existing calendar, you may wish to import your personal appointments, birthdays and so on into the new one. It may not be necessary, because providers such as Google and iCloud allow multiple calendars. Events are colour-coded to show which calendar they belong to.
However, if one of the people using your new calendar previously used a different platform – for example, you have
decided you’ll all use a Google Calendar and one person used an iCloud one on their iPhone – you need to import it.
To import events from an iCloud Calendar into Google, first export them into an ICS file by following the steps at http://apple.co/1I0wS0p. Then import the file by following step 2 at http://bit.ly/1mMXSIA.
To export a Microsoft Outlook Calendar to Google Calendar, follow the steps at http://bit.ly/2cI17lN.
Customisation
Once you have a single, shared calendar, take some time to set it to a format with which you’re comfortable. Most providers have the option of a daily, weekly or monthly view.
Next, feel free to fine-tune the calendar’s appearance. You can make changes to the iCloud Calendar – for example, to change the viewable time period – by following the instructions at http://apple.co/2oeuCm2.
Google Calendar’s default look and feel is somewhat spartan. If you would like to experiment with different themes, there are a number available at http://bit.ly/ 2oeD7O6. You need the Stylish Firefox extension in order to install them. Visit https://mzl.la/1fe2Nwr, then click Add to Firefox to install this.
Full-screen ahead
As you’ll be using a much smaller screen than you’re used to, space will be at a premium, so consider installing the Real Kiosk (r-kiosk) add-on for MozillaFirefox.
Real Kiosk does what it says on the tin: it’s designed to turn your browser into the equivalent of an internet kiosk. This means the menus, toolbars and even the right-click function are disabled. The chief advantage of this is that Firefox always opens in full-screen mode, making your calendar much easier to see. This also makes sure your device can only be used as a calendar, as people trying to view other websites are bounced back.
If you do need to close down Firefox for any reason, you can do this by connecting a keyboard, holding down the Alt key, then pressing F4.
Editing your calendars
Reading this project so far, it would seem that viewing the calendar in the web browser is passive. However, if you have a central calendar on your wall, wouldn’t it be ideal to let people add and edit appointments as well?
If you are using the official Raspberry Pi Touchscreen Display, tapping anywhere with your finger simulates moving the mouse and left-clicking in that place. You can use this to edit the time of events and even create new ones.
Problems may arise when you want to edit the text of events or create names for new ones. Naturally, you could connect a small wireless keyboard and leave it near the wallmounted calendar in case data needs to be entered. A much less clumsy solution, however, would be to have the keyboard built into the browser itself. The MozillaFirefox extension VKeyBoard is designed for kiosk browsers, and pops up when clicked to allow users to enter text.
Simply visit https://mzl.la/2njGePN inside the browser and click Add to Firefox to install. If you have already installed the r-kiosk add-on and can’t change your web page, restart Firefox in safe mode, as outlined above.
Sharing the dates
If you want to use any device besides the Raspberry Pi to add or change appointments in Google Calendar, you either need to sign into your Google or iCloud account on that device, or share your calendar with others.
To share your Google Calendar, follow the steps at http://bit.ly/2nzfqwG. You can send a link to only certain email addresses or make the calendar viewable to anyone with the link. You can do the same for iCloud Calendars by following the steps at http://apple.co/2bfWHk8.
If you use Outlook2010, it’s also possible to publish a calendar to Outlook.com by visiting http://bit.ly/2oCrLzn
and following the section entitled Share a Calendar by Publishing it Online.
Once your calendar has been shared online, those people who wish to edit it will need to be able to access it from their own devices. For anyone with a computer, this is a simple matter of visiting the link as you would on the Raspberry Pi, by using the browser.
It’s also possible to view and edit the calendar on mobile phones. If the shared calendar is with Google, Android users can access it directly from their own calendar app, even if they have a different Google account, by following the instructions at http://bit.ly/2nP8vBB. There is an official
Outlook app for Android, which allows for easy viewing and editing of Outlook calendars.
Sadly, iCloud Calendars aren’t so easy to make friends with, but there are a number of third-party apps, such as
SmoothSync, in the Google Play store, which enable you to synchronise between calendars. If you are an iPhone user, you’re in luck. There’s an official
GoogleCalendar app in the iTunes Store, with which you can sign in and view your calendars. There is also an official
MicrosoftOutlook–EmailandCalendar app, which can be used to view and edit Outlook Calendars.
Calendar conundrums
If you create or change an appointment and it doesn’t appear right away on everyone’s device, wait for five to ten minutes before attempting troubleshooting, to let it percolate through the various layers of software. If the changes are visible on the wall calendar – that is, on the website – the issue is most likely to do with the device, not the Raspberry Pi.
The software and add-ons used to view the calendar are very easy to install, so the most problematic part of this project is likely to be when it comes to adding the monitor and fixing it to your wall.
You can make life much easier for yourself by buying a monitor specifically designed for the Raspberry Pi, so you have somewhere to put the computer itself – in other words, tucked away tidly behind the screen.
If the place you want to install the wall calendar is hard to reach, you may be able to buy a longer micro USB cable, but bear in mind that the voltage drops as cable length grows. Consider using shorter cables and/or a powered USB hub.
If the Raspberry Pi crashes for any reason, Firefox will attempt to restore all open web pages once it reboots, which may mean you have to plug in a mouse or keyboard to close down any extra tabs. You can reduce the chance of this happening by starting
Firefox in safe mode, and then entering about:config in the address bar. Press Return to be taken to the settings screen for Firefox.
Once you’re there, scroll down to the setting marked “Browser.sessionstore.resume_from_crash” and doubleclick to change from True to False.
If you’re using Google Calendars, anyone who scrolls to the top of the screen will be able to switch from your calendar to your other Google Apps, such as Gmail. They can also use the search bar to view documents stored in your Google Drive.
If this concerns you, consider setting up a dedicated Google account, just for the calendar. You can still access and edit the calendar from your own account.