Парадокс дней рожденья от Microsoft

Как известно, при добавлении контакта в MS Outlook автоматически создается событие с его днем рожденья. Это очень удобно, когда Outlook тебе напоминает о днях рожденья друзей. В один прекрасный момент все дни рожденья исчезли из моего календаря в Office 365. Причину я не знаю до сих пор, но вот небольшая инструкция, что делать в этом случае:

В первую очередь надо понять, что добавлением событий при связке Outlook+Exchange занимается не сервер Exchange (что казалось бы более очевидным), а Outlook. Таким образом, если мы добавим контакт через веб интерфейс Exchange (OWA), событие в виде дня рождения создано не будет. Outlook 2011 for Mac, оказывается, тоже не имеет такого функционала. Поэтому, для добавления дней рожденья контакт должен быть создан исключительно в Outlook for Windows. 

Чтобы восстановить потерянные дни рожденья, есть 2 способа. Самый простой и самый грубый: забекапить контакты в локальный или другой аккаунт, удалить их все, а потом добавить обратно через Copy/Paste. Второй способ — исполнить небольшой VBA скрипт (найден в глубинах форумов MS):

Public Sub PutBirthdaysInCalendar()
   Dim OutApp As Object, oApptFolder As MAPIFolder
   Dim oContact As ContactItem, temp
   Set oApptFolder = Session.GetDefaultFolder(olFolderContacts)
   On Error GoTo koniec
   For Each oContact In oApptFolder.Items
       With oContact
           If .Birthday <> FormatDateTime("4501-01-01", vbShortDate) Then
               temp = .Birthday
               .Birthday = FormatDateTime("4501-01-01", vbShortDate)
               .Save
               .Birthday = temp
               .Save
           End If
       End With
   Next
koniec:
End Sub

Дни рожденья восстановлены. Может кому пригодится вдруг.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>