Set Birthday/Anniversary Reminders
Following macro changes (it does not set reminder if it is not set already) reminders for birthday/anniversary events to configured number of hours before event (because by default it is 15 minutes before midnight and one does not want to be woken by Android at that time). This macro is useful for situation when birthday event is not synchronized with reminder time (which can happen rarely on specific conditions).
License: GPL
Sub SetSpecEventReminders()
Dim ns As NameSpace
Dim f As Folder
Dim t As AppointmentItem
Dim rp As RecurrencePattern
Dim istr As String
Dim remtime As Integer
Dim n As Integer
Set ns = Application.GetNamespace("MAPI")
Set f = ns.GetDefaultFolder(olFolderCalendar)
istr = InputBox("Number of hours before event")
If Not IsNumeric(istr) Then
MsgBox "Input is incorrect, macro will not continue."
Exit Sub
End If
remtime = CInt(istr) * 60
n = 0
For Each i In f.Items
If i.Class = olAppointment Then
Set t = i
If t.IsRecurring And t.ReminderSet And t.AllDayEvent Then
Set rp = t.GetRecurrencePattern()
If rp.RecurrenceType = olRecursYearly And rp.Interval = 12 And rp.NoEndDate Then
If (t.ReminderMinutesBeforeStart <> remtime) Then
t.ReminderMinutesBeforeStart = remtime
t.Save
n = n + 1
End If
End If
End If
End If
Next
MsgBox "Changed " & n & IIf(n = 1, " event", " events")
End Sub