A couple of years ago, I tried to create ICal files using Data::ICal, and failed when loading into Outlook. Outlook is, it seems, once again not compatible with a standard, in this case the ICal RFC.
I ended up creating the file manually in Perl, by reverse-engineering the ICal files that Outlook produces, sussing out the basic format from these, and testing my output files. I don't have that code handy, but a similar process should produce ICals that Outlook likes. If you really want a look at my code, respond or msg me, and I'll post it.
----Asim, known to some as Woodrow.