As I continue to shave and optimize my hybrid working environment to gain more productivity out of the limited hours I have in every day, I’ve been working on consolidating my calendaring needs across the three platforms I currently use (soon to be 4):
- Linux Development environment (I do everything on Linux)
- Windows Financial environment (I use this for Microsoft Money, some Office 2007 work and several Palm conduits and plugins that don’t have Linux equivalents)
- Mac OS X (not yet introduced into my workflow)
I have a lot of calendar items that need to be in various places so I can get to them when I’m working on that platform. This means when I’m on Linux, I need to see my calendar in Evolution and J-Pilot.
When I’m in Windows, I need to see the same calendar in Microsoft Outlook.
When I’m in a browser or not on my native Linux or Windows machines, I need to be able to see my calendar in Google Calendar.
All three platforms must reflect the same EXACT data, without being out of step with any other. So far, this is working very well, using my Palm Treo680 as the middle-man delivery mechanism.
Recently it came to my attention that I need to have clients see where my free/busy time is, and start booking their own slots of my time into the free spots that I haven’t personally blocked out yet.
To do this, I’ve had to leverage and expose my Google Calendar to the public.
On Windows, I’m using a tool called “CompanionLink for Google Calendar” to get my calendar data from Treo → Outlook → Google Calendar. It’s non-free, but it had a decent trial period and its usefulness won me over, so I registered it.
But there was no obvious way to get Evolution to read back those calendars, so I could see when external people (i.e. friends, clients) were adding things to my calendar to book my time for them.
Enter “evolution-webcal”, a seldom-discussed binary that lives in /usr/lib/evolution-webcal/ on most GNU systems (/opt/gnome/lib/evolution-webcal/ on SuSE)!
Basically all you have to do to get Evolution to read in your Google Calendar calendar files is the following (all on one line):
$ /usr/lib/evolution-webcal/evolution-webcal \ http://www.google.com/calendar/ical/p%23weather%40group.v.calendar.google.com/public/basic.ics
The way you get the .ics calendar URL you see above, is by:
- Log into your Google Calendar account
- Click the little “V” chevron to the right of your target calendar in the “My Calendars” block on the left sidebar
- Select “Calendar Settings” from the popup menu
- Towards the bottom of the “Calendar Details” tab on the right side, you’ll see two sections: Calendar Address and Private Address. Click the [ICAL] item on either of these (choose wisely)
- Cut and paste the URL provided in the popup window into your evolution-webcal command above.
That’s it. Now Evolution will have your new Google Calendars listed under the “On the Web” category in the Calendar’s view.
Now I can see the same thing in Evolution as I see in Outlook as I see in Google Calendar, without any discrepancies. Whew!
If Mozilla Thunderbird is your thing, there’s an extension to Thunderbird called “Provider for Google Calendar” that allows you to read/write to your Google Calendars from within Thunderbird.
It’s a start. Now where did I put those extra 32 hours I need in every day again?