Monday, October 03, 2011

Holiday cmdlet for Exchange 2010

We've been inserting holidays server-side on Exchange for a while and after some feedback last year we started re-thinking how to accomplish this.
These are the files in the downloadable ZIP

We've written a PowerShell cmdlet we call suHoliday that inserts holidays server-side.  We've run it through our internal testing against on-premises Exchange 2010, Live @ Edu, and Office 365, so now we think it's time to let it out into the wild and see what you folks can do with it.

The sample CSV file for US holidays

 Your inserted holidays will look like this in a user's calendar:

If you want to download it and run it through its paces in your test lab, you may do so here.  We just ask you to answer a few questions so we can keep track of where it's going.  If it works for you consider making a donation of US$20 per instance.  It'll make it easier for us to consider updates and new features for next year.

What's it do now?

  • Insert server-specific or user-specific holidays through 2012 with NO user intervention.

  • Customize for different state or national holidays.

  • Define Free/Busy status.

  • Script adding holidays at user provisioning time (e.g., by piping in from get-mailbox).

  • Support for multiple time zones.

  • Define All-Day Events or appointments at specific times.

  • Support international holidays / date formats. For example: 2012 UK Bank Holidays

  • Try it out and tell your friends.

    Limitations (or, what do you want for free / ultra low cost?)

    • This only inserts holidays for the year 2012 (well, we give you a few weeks into 2013).
    • All inserted events have "Inserted courtesy of the Exchange Calendaring experts: Sumatra Development" in the agenda. (yep, even if you license it)
    • We support via electronic means, so keep an eye on our blog.


    AndrewZ said...

    Possibly worth adding to the documentation, The Exchange Web Services DLL may need to be added before using suHoliday:

    [PS] C:\>Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.We

    This looked like the perfect solution to an request. Perhaps it still is, but I'm still scratching my head on a EWS error. I had to install EWS, it wasn't installed previously.

    suAddHoliday: Failed to add holiday into:; New Year's Day Holiday; Failed: ERROR: addHoliday: to user:; Item: New Year's Day; Error: The request failed. The remote server returned an error: (405) Method Not Allowed.

    zyg said...

    We really don't have enough to go on here to help you troubleshoot this. If you want to drop a private email with more detail to INFO AT sumatra DOT COM we'll see what else we can tell you.