I was soo excited to get this working that I decided to post about it. So for a long time I have had to settle for a very non-cool way to look at my calendar at work, the reason – Microsoft Exchange. I hate Exchange. A lot and for a lot of reasons. One of those reasons being I am a Linux user and don’t use any Microsoft products regularly, and this causes a problem when I want to use my calendar at work. People schedule events and they go into my calendar, but I can not view them unless I log into this web interface thing that Exchange has.. which is totally lame. I want to set reminders and notifications on my desktop and see the calendar on my phone. BUT HOW!? This is what I did.. its long, and very hackish, but it worked good enough for me.
I use Mozilla Thunderbird 3.1.x for my email, so step one was to get some kind of calendar add-on. I chose Lightning.
This gave me a calendar, next step was to link it to Exchange, for this I used the Provider for Microsoft Exchange plugin.
And configured it to use my active directory credentials. Now I can see my work calendar from Thunderbird!!
Here is the ugly part. I wanted my HTC Aria (Android) phone to see them. On Android I use the Smooth Calendar widget to list my upcoming Google Calendar events, so I now needed to get my calendar from Thunderbird to Google Calendar. At first I thought I would just setup DAV in Apache on my personal web server (sortof like this) and use the Publish feature in Lightning to push the ics file to it.. but it appears that that does not automatically update, you have to manually press the “Publish” button every time, which is not good enough. I did find an outdated Thunderbird plugin called Automatic Export, which required a slight modification to the install.rdf inside of the xpi file to change the maxVersion allowed to install with.
That would write an ics file to the local disk every 15 mins. Once that was done I was able to setup a cron job to call curl and upload my calendar to my web server whenever I wanted:
/usr/bin/curl -s -u <username>:<password> -T /home/drunnells/calendar/work_Calendar.ics http://mywebserver/dav/
All that was left after this was to setup a new remote calendar in Google Calendar and configure Smooth Calendar on my phone to show those events!
Like I said, not pretty.. but it worked. It would be nice if Lighting would come up with some way to auto-publish whenever there is a change, then I could skip the whole auto-export/curl thing.