Outlook Developer Home
Outlook Programmer's Library
Outlook Technologies
Outlook Forms
Other Technologies



Transmit Holidays Form

Outlook comes with a file named Outlook.txt or Outlook.hol that includes lists of holidays that you can import into your personal Calendar folder. But it doesn't know the exact day you use to observe a particular holiday in your organization.

The Transmit Holidays form is a solution for Outlook 98 or later to make it easier for administrators to distribute lists of company holidays and other important dates to users. The compose page of the form includes a regular message box where you enter the detail of the appointments and events. Users who receive the form will see only an Add Holidays button.

Version 7 (3 Dec 1999) adds this enhancement:

  • Automatically generates a list of holidays from a calendar folder. Ideally, you'll point it to a public folder that already contains a company holiday calendar.

A revised version is available for testing, adding support for the Location field, marking items with a user-chosen category, and better support for Outlook running in languages other than English.

Setup | Usage | Notes | Limitations | Problems | More Information


  1. Download the holiday.zip file (11kb), then unzip it and open Holidays.oft in Outlook. If you see the disable/enable macros prompt, choose Enable Macros so the form can test whether you have the right version of VBScript.
  2. Publish the form to the Organization Forms Library. (In a non-Exchange organization, you would need to publish to each user's Personal Forms library.) Make sure that you say No to the prompt that recommends checking the Send Form Definition with Item box.
Back to Top


You'll need to create a folder holding a separate Outlook Appointment item for each holiday. These can be either one-time or recurring holidays, and they may be either all-day events or covering a particular time range. The following properties will be copied from the Appointment items you create to those created in the users' Calendar folders:

Start time
End time
All-day event
Reminder (True or False)
Reminder time
Show time as (Free = 0, Tentative = 1, Busy = 2, OutOfOffice = 3)

After you have created the holidays you want to transmit, choose Tools | Forms | Choose Form or, in Outlook 97, Compose | Choose Form , and select the form you published above. When the form opens, fill in the To and Subject fields.

Click the Generate Holiday List button and, when prompted, select the folder that contains your holidays and indicate what year you want to generate holidays for. (Only one year at a time is allowed in this version.) This will fill the body of the message with a %-delimited list of information about each holiday. You can edit this list before sending, following the instructions on the form.

Send the form as usual once you enter all the recipients and appointment details.

When a user opens the item, it will show an Add Holidays button and a check box for marking all holidays with the Holiday category. The user simply clicks that to add the holidays from your message to his or her Calendar folder. After the items are added, a message pops up reporting on what actions were taken and warning the user not to run it again or else duplicates will be created.

Back to Top


You can use this form to distribute any kind of appointments -- not just holidays -- without having to send meeting invitations.

If you want to adapt the form to work with Outlook 97, you will need to replace the use of the Namespace.PickFolder() method to get the source folder for the holiday event items -- either by using Namespace.GetDefaultFolder() or the method described at To get a MAPIFolder object in Microsoft Outlook (VBA or VBScript).

Back to Top


If you need to enter multiple-day events, make sure you set All-Day Event = False and put in the exact dates you want included, ending at midnight of the day following the day the event ends. For example, if you want the item to end of Jan. 4, 2000, for example, set the End Date to 1/5/2000 and the End Time to 12:00 AM.
Back to Top


Nothing in the form prevents users from adding the same holidays more than once. If this happens, the easiest way to clean out duplicates is to apply the By Category view to the Calendar folder and expand the Holiday category to see the duplicates. Adding the Modified date field to the view can also help distinguish holidays adding in one batch from those added earlier.
Back to Top

More Information

Other methods for distributing holidays:

2002-7 TurtleFlock, LLC
All right reserved.
About OutlookCode.com

Send comments to webmaster@outlookcode.com

Designed and Implemented by TerraLink USA 

FrontPage Integration
by RobsonDesignWorks

get Sue's code | forums | share your own code | registration