iCalendar Plugin for Outlook Project

I think it should be possible to write a plugin for Outlook that approximates subscribing to an iCalendar. I think such a plugin would be downright useful, and I’ve submitted the project registration to SourceForge for approval to get things started.


Create a plugin for Outlook that approximates iCalendar subscription.


Current releases of Microsoft Outlook support the import and display of iCalendar formatted data, but they do not support subscribing to a remote web iCalendar. Subscribing to a remote web iCalendar is a very useful feature and Microsoft Outlook users would benefit from having this capability.


The web site iCalShare.com lists over 1927 public calendars including US Holidays, schedules for all major sports, meeting schedules for clubs and groups, etc.


The plugin will need to download an iCalendar over HTTP (open an URL), then import the iCalendar into Outlook. The events in the iCalendar will have the source URL inserted into a custom field. A windows event scheduler item will call for an update every hour, and any iCalendars that need to be updated at that interval will be re-downloaded, old events removed and new events imported per above.


A “Subscribe to iCalendar” button in Outlook. Clicking this button will open a dialog:

Subscribe to an iCalendar


Importing events into Outlook can be controlled via external code. Events that are imported can be tagged with a Source URL via a custom field. External code can locate all events via Source URL and remove them. The windows event scheduler is capable of kicking off code to initiate the iCalendar update.


I selected the BSD license in the Source Forge application, but I wouldn’t be against multi-licensing the code. This will allow both open source projects and commercial projects to leverage and bundle the features enabled by the project.

What Happens Next?

Well, I’m not a Windows programmer, so I’m actively recruiting for one – or several. 🙂 I’m sure there are lots of folk with VB, .NET and Outlook API experience out there that could do a proof-of-concept for this in a couple of hours – I’d love to hear from you.