Outlook to iCal but not automatically
- — 16 August, 2007 08:29
Is it too much to ask? All I want to do is to extract new calendar items from Outlook in iCal format every day at a set time. The reason for this is I am planning to buy a big, new Mac Pro (dual 3.0GHz quad core, dual graphics cards, 8GB RAM - yes, greed is an ugly, ugly thing) so that I can run VMware Fusion to host guest operating systems (including multiple copies of XP and Vista) alongside OS X, which is now my favorite desktop environment.
As a result I will be able to have one VM running XP with Office and other core tools and have other VMs with Vista and XP to run all the weird applications I test. Should any guest OS get trashed I can just roll back the VM image to a previous state. A bonus will be the opportunity to migrate over to iCalendar on OS X, which is far prettier than Outlook. Better still, if I use IMAP instead of POP3 I should be able to jump between systems with wild abandon while still having e-mail access.
Better better still, this will not only allow data sharing between Outlook and iCalendar, but also with the wonderful PHP iCalendar, which is just as pretty as Apple's iCal.
Anyway, it shouldn't have been too hard to figure out how to solve the Outlook to iCal part, should it? Well, unfortunately it was.
Microsoft, in its usual, inimitable way, designed Outlook so it can import iCal files but provided no support for exporting iCal data. You can imagine Steve Ballmer way back when the company was designing Outlook rubbing his hands and mumbling, "We will suck in all data but we will never let it go . . . we shall rule until the mountains crumble but that won't matter because by then we'll own them too, mwah-ha-ha-ha!"
I started by looking for an Outlook macro that could extract to iCal and found the excellent outlook2ical, written by Norm Jones. This is a Visual Basic macro that can export appointments from an Outlook calendar to an iCal formatted file (that's an .ics extension).
Outlook2ical can export all appointments in a calendar or just those categories you specify. As it is written in VB it could be easily modified to make the selection of categories predefined.
Installing this macro is easy and it really works as an on-demand solution. But what I want is a regular scheduled export. And here's where you run up against a brick wall: Outlook's object model doesn't support an onTimer function (see Microsoft's fairly useless support article on the topic.
An external program could do the extract except for one thing: As soon as the program tries to access the Outlook data, Outlook requires you confirm that you want to allow access, which means that the process can't be automated.
So, I haven't yet been able to figure out how to make this work. It shouldn't be that hard but it turns out it is, as far as I can figure out, impossible. Anyone have any suggestions?