[I found this 'solution']. It seems that there isn't a real fix, but this website has a workaround in the comments
Hi, This isn’t a fix for the 18 hours
thing but its a workaround. It comes
in the form of an Outlook macro I have
just written – you are all free to use
the code below.
What it does is search your calendar
for the next six months of all day
appointments only and then sets the
notification of them to 0 minutes –
Meaning you should get them on your
blackberry on the same day.
Once you copy the code into Outlook I
advise you sign it yourself so Outlook
can run it with macro security still
at a good level and put a macro button
in your toolbar – instructions for
both are on the sites below. Then you
just have to press the macro button in
Outlook every day\week and you don’t
have to worry about setting an all-day
appointment in outlook without
changing the notification.
Hope it helps.
Dim daStart, daEnd As Date
Dim oCalendar As Outlook.Folder
Dim oItems As Outlook.Items
Dim oItemsInDateRange As Outlook.Items
Dim oFinalItems As Outlook.Items
Dim oAppt As Outlook.AppointmentItem
Dim strRestriction As String
Dim CurrentTitle As String
‘ PART ONE
‘ Set the date range for the appointments query -
‘ It is set below to start at todays date and
‘ end at todays date + 120 days (or 4 months)
‘ You can increase or reduce this based on your PCs performance
daStart = Format(Date, “mm/dd/yyyy hh:mm AMPM”)
daEnd = DateAdd(”d”, 120, daStart)
daEnd = Format(daEnd, “mm/dd/yyyy hh:mm AMPM”)
Debuglog = “1 Start: ” & daStart
Debuglog = Debuglog & “, ” & “1 End: ” & daEnd
‘ PART TWO
‘ Construct a filter for the next 120-day date range.
strRestriction = “[Start] >= ‘” & daStart _
& “‘ AND [End] <= ‘” & daEnd & “‘”
Debuglog = Debuglog & “, ” & “2 ” & strRestriction
‘ PART THREE
‘ The macro obtains the set of appointment items in the default calendar
‘ specified by the current Outlook user profile.
Set oCalendar = Application.Session.GetDefaultFolder(olFolderCalendar)
Set oItems = oCalendar.Items
‘ PART FOUR
‘ To include recurring appointments, sort by using the Start property.
oItems.IncludeRecurrences = True
‘ PART FIVE
‘ Restrict the Items collection for the 1110-day date range.
Set oFinalItems = oItems.Restrict(strRestriction)
‘ PART SIX
‘ Go through each calendar item remaining in turn
‘ If it isn’t a full Day event do nothing
‘ If it is set Reminder to 0 Minutes.
For Each oAppt In oFinalItems
Debuglog = Debuglog & “, ” & “6 ” & oAppt.Start & “, ” & oAppt.Subject & “, ” & oAppt.ReminderMinutesBeforeStart
CurrentTitle = oAppt.Subject
If oAppt.AllDayEvent = False Then
oAppt.ReminderMinutesBeforeStart = 0
Debuglog = Debuglog & “, ” & “6 ” & oAppt.Start & “, ” & oAppt.Subject & “, ” & oAppt.ReminderMinutesBeforeStart & vbNewLine & vbNewLine
Debuglog = “”