Just another site

Tag Archives: recurring appointments

Free/Busy Exchange 2007 unavailable for single user due to infinitely recurring appointments

I’ve just spent two days dealing with a free/busy calendar viewing issue, combined with an inability to accept recurring appointments on an iPhone connected over ActiveSync to Exchange 2007.

The symptoms were this:

  • No one could view this particular execs free busy information from either Outlook 2010 or OWA on Exchange 2007. Everyone elses freebusy was viewable by all staff. This issue had been extremely long-standing, the users mailbox had been migrated up from Exchange 4 and we’d previously dealt with issues of non-inherited permissions caused by a cretinous admin giving him domain admin permissions to resolve “problems”.
  • Every so often when this users iPhone synced or he accepted an appointment he received “Synchronization with your iPhone failed for” blah blah “this appointment is still viewable in outlook or OWA”.
  • He was most distressed.

Initial attempts to solve this had been to look at logs, run outlook.exe /cleanfreebusy. This made no odds, as i later discovered this was due to this being a legacy command that cleans public folder free busy not availability service free busy (please correct me if I’m wrong).

I did some sniffing around without knowing about the availability services on Exchange 2007 and discovered that legacy free busy was supposed to be submitted to public folders and used outlook 2003 to try to view this users free busy and it worked fine.

Further investigation revealed that the only calendar items that were failing to be accepted on the iPhone were recurring appointments, further to that the only ones that seemed to be having an issue were those with no end date. I tried updating these to have an end date but then it seemed there was another issue here, when i tried to send the update i received a red pop up: “Can’t open this item. The property does not exist”. Clicking ok to this and then pressing send update seemed to work, but when i checked on the calendar items in list view it had updated the recurrence to end in the year 4500.

Googling revealed this dead thread:

Seemed similar but no conclusions. And this which was nearer.

I looked at the permissions on the mailbox and found NT Authority\Self was missing from both full access and send as, and corrected this using add-mailboxpermissions. I also cleaned up a load of other sledgehammer permissions fixes applied by someone in times of yore and restarted the IS.

This didn’t help so was nothing to do with the bodged permissions (seems silly to have thought it was now). I then increased the exchange logging for all of the availability services as it seemed both the iPhone issue and the freebusy were probably down to the same thing, corrupt or damaged calendar items. You no longer have to do this through powershell as of sp2, this post helped me here:

Exchange SP2 diagnostic logging config

As soon as i upped the logging and checked the freebusy i saw error 4009’s on the exchange server for my problem user:

“Exception returned is: Microsoft.Exchange.Data.Storage.ObjectNotFoundException: Cannot open embedded message. —> Microsoft.Mapi.MapiExceptionNotFound: MapiExceptionNotFound: Unable to open property 0x3701000D”

Of course it was not able to identify the problem calendar item, however that’s where this tremendously useful post from Nuttin But Exchange came in handy as it references a different problem with similar consequences but also links to a tremendously useful cmdlet from that will scan a calendar and tell you on what days problem appointments are allowing you to go in and correct/delete. You can get this script here. You’ll also need EWS on the Exchange server if it’s not installed already and the machine running the cmdlet must be on PowerShell/WinRM 2.0. Given EWS has been updated since the cmdlet was written you’ll need to change the version in the path referring to ver 1.0 in the script to 1.1 before it will work, see below:

“C:\Program Files\Microsoft\Exchange\Web Services\1.0\Microsoft.Exchange.WebServices.dll”
All syntax is in the comments in the cmdlet.

So after running this script we found 25 bad days in the calendar, went through them all with his PA and every single one of them was a recurring appointment with no end (or the year 4500), once corrected, freebusy was available again and the user in question was able to view those meetings in their iphone.

Glad to put this one to bed. Not sure why more users weren’t affected as can’t imagine he was the only iphone user with infinitely recurring appointments, or why these appointments would also break freebusy? Any comments welcomed.