Outlook to iCal Export Utility for Windows

Written by: Norm Jones
Last edited: September 8th, 2005

The outlook2ical utility is a VB macro that can be used to export a set of appointments from an Outlook Calendar to the iCal format.  The end result is a *.ics file.  My motivation for developing this macro is that I am not happy with the "Save As Web Page" option in Outlook.  The main problem is that it saves all appointments associated with an Outlook calendar.  I would like to only export appointments of a selected category or categories.  I also wanted to be able to view the exported calendar using PHP-iCalendar, which has a far superior appearance when viewed on the web.

This utility is free.  However, if you use it and like it, please consider donating to the SPLORE organization (www.splore.org).  Click here for details.

This project is hosted at Sourceforge here: http://sourceforge.net/projects/outlook2ical/

Download/Installation Instructions

To install, do the following:

  1. Change the security settings in Outlook so that you can use Macros.  To do this, select the Tools/Macro/Security command from the Outlook menu and change the setting to Medium.  Under this setting, you will be prompted for confirmation each time you do something with your macro (run it, edit it, etc.)
  2. Download the zipped VB files: http://sourceforge.net/project/showfiles.php?group_id=136194 Unzip the file anywhere on your HD.
  3. Open Outlook and go to the VB Editor (Tools/Macro/Visual Basic Editor)
  4. Go to the Outlook Project window on the left side of the editor, right click on the project icon (at the top level of the tree), select "Import File", and open the frmSaveiCalStep1.frm file.
  5. Right click on project again and import the frmSaveiCalStep2.frm file.
  6. Right click on project again and import the frmSaveiCalStep3.frm file.
  7. Right click on project again and import the clsFTP.cls file.
  8. Right click on project again and import the icalendar.bas file.

At this point, you should be able to run the macro using the directions shown below.

If the macro does not run, it could be that you need to add some references. I use the following references:

To check on your references, select the Tools/References command in the VB Editor. You may need to scroll down the list to find the ones you are looking for.

Using the Export Macro

My macro works as follows:

  1. Set up your calendar in Outlook and be sure to assign categories to each of your appointments based on the type.  This is not essential, but it does make the macro more powerful.
  2. Launch the macro.  To do this, you can select Tools/Macros/Macros command, select export_icalendar from the list, and select run.  As an alternative, I like to use the Customize command in the Tools menu to add a shortcut to the macro in the Outlook menu.  Then you can simply select the menu command when you want to run the macro.
  3. The following dialog will appear:

Pick the calendar you wish to export and select the Next -> button.

  1. At this point, you may need to wait 10-20 seconds to see something happen, depending on the size of your calendar.
  2. Eventually, the following dialog will appear:

Select the appointment categories you want to export.  It will only list the categories currently being used (actually assigned to existing appointments) in your calendar.  Or you can choose the Export all appointments in calendar option to export everything.

  1. Select the Next -> button.
  2. Finally, the following dialog will appear:

Make sure that the path you enter is the complete path, including the file name.  For example: "C:\mystuff\mycal.ics"

At this point, you can choose to save the iCal file to a local or network directory or you can upload it to an ftp site.  Click on the Finish button to complete the process.

The resulting calendar should be placed in the calendars subdirectory where you store your php-icalendar web.  It will then appear on your php icalendar.

Warning: This macro assumes you have a C:\temp\ directory.  It uses this path to store some scratch files.

This code is used by quite a few users around the world without serious problems.  I am currently using Outlook 2003.

Known Bugs/Issues

Here are some open bugs/issues:

Submit all bug requests through Sourceforge here: http://sourceforge.net/tracker/?group_id=136194&atid=735269

Development Plans

Based on feedback from users, here are the things I am currently working on:

Version History

Version history can be found here: http://sourceforge.net/project/showfiles.php?group_id=136194

Click on a particular version number to see release notes.

Javascript Version

Ryan Watkins took the VB source to outlook2ical and created a Javascript version.  This allows it to be executed as a Windows Scripting Host file so it can be run without being installed as a macro in Outlook and without any interaction from the user - the few settings are just in the file itself.  As a scripting host file, it can be run automatically on a regular interval.  Click here to download: http://www.ryanwatkins.net/software/.


This utility is free.  However, if you use it and like it, please consider donating to the SPLORE organization (www.splore.org).  I am not part of the SPLORE organization, but I think it is a great charity.  It is a non-profit organization that has been a leader in providing outdoor adventures for people with disabilities and special needs. To date, over 20,000 individuals have participated in a recreational activity with SPLORE.  100% of your donations will be forwarded to SPLORE.  Click on the button below to donate.  Feel free to donate any amount.

  (credit card transactions are accepted)