Birthdays recur every 12 Years

Last reviewed on July 20, 2012

In this calendar sync bug, All Day events that recur yearly are changed to recur every 12 years. This bug first appeared with the release of Office 2007 SP2 and affects devices that sync with Outlook 2007 using ActiveSync. It may only affect users who sync their device between two different computers.

Recurrence optionsThe problem is related to Outlook's ability to set an appointment's recurrence to "every N years".

This recurrence setting was added to Outlook beginning with Outlook 2007 SP2 but this recurrence pattern is not supported by Window Mobile's calendar.

Hotfix

To fix this problem (and a long list of other issues) install the following hotfix:
Description of the Office Outlook 2007 hotfix package (outlook-x-none.msp): April 27, 2010

Palm Devices

This was a problem synching PalmOS devices with Outlook 2007 via Chapura PocketMirror conduits (which use Palm HotSync software).

Chapura issued an update to (Version 4.3.1) on November 14, 2008 that fixes this issue. Install the latest update to fix.

Solutions

If your calendar is affected by this bug, set the events to have an end date (within the next few years – don't go too far into the future). This reportedly fixes the problem. A future update may address the problem.

If setting an end date doesn't work, set the appointments to be timed – such as from 8AM-9AM.

Restore existing events to 1 year recurrence

You'll need to fix the Events yourself or use VBA code such as the sample code below. (You'll need to be viewing the calendar folder when you run this code.)

'Posted by Viade
'http://social.microsoft.com/Forums/en-US/windowsmobilehelp/thread/8dbfde6c-9788-4ff9-a4b8-6b5751b765da/

Sub ChangeIntervalFrom144To12()
    Dim ai As AppointmentItem
    Dim rp As RecurrencePattern
    For Each ai In ActiveExplorer.CurrentFolder.Items
        If ai.IsRecurring Then
            Set rp = ai.GetRecurrencePattern
            If rp.Interval = 144 Then
                rp.Interval = 1
                ai.Save
            End If
        End If
    Next ai
End Sub

Using VBA Code

To use VBA code, press Alt+11 to open the VBA Editor. Locate ThisOutlookSession and paste the code into the editor.

Press F5 or the Run button to test the macro. (It's highly recommended you make a backup of the folder or message store before running macros.)

You'll also need to change macros security or use selfcert.exe to sign your macros. Access the dialog to change the security level from Tools, Macros, Security. (This is at File tab, Options, Trust Center, Macro Security in Outlook 2010). Set it on "always ask". Do not choose the Low option (run all, never ask). Some security software will set it to High and your macros will not run.

To run the macro later, press Alt+F8 to open the macro dialog, then select the macro and choose Run. Or add a button for the macro to your toolbar or add it to the QAT in Outlook 2010.

See How to use VBA code samples in Outlook for more information.

"Best Practices" Suggestion

Even if you don’t sync with devices, I recommend setting an end date on all recurring appointments and events. If the appointment occurs frequently, set the end date for Dec 31 and make new events each Jan 1. Use 2012 as the end year for less frequent events such as birthdays or set them to end after 10 events. As long as you do not add notes to individual occurrences within the series or create exceptions, you can change the end date later without issue.

Written by

Diane Poremsky
A Microsoft Outlook Most Valuable Professional (MVP) since 1999 and involved in IT support since 1985, Diane is the author of several books and video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.