When working with Outlook over recent years one of the most frustrating issues is that reminders for calendar entries are hidden behind other windows if you do not have Outlook as the active window, this can often cause you to miss/turn up late to important meetings/appointments.

This guide shows you how to enable it in the most recent versions in which Microsoft have finally addressed and also how to enable it using a self signed certificate and VBA in older versions.

This option is now available for Office 365 Home, Office 365 Personal, Office 365 Business, and Office 365 ProPlus customers on Monthly Channel (Version 1803 or newer). For subscription customers on one of the Semi-Annual Channels, this option will become available after upgrading to Version 1808.

Latest Versions

From Outlook, you can turn this on using File > Options > Advanced. Look for the “Reminders” section and check the box next to “Show reminders on top of other windows”.

Now if you create a calendar invite, set the reminder and save the alert it should now appear on top of other windows when the reminder was set.

Older Versions

For versions previous to this you have to do the following,

Search for the program called "Digital Certificate for VBA Projects"

Create a self signed certificate using by adding a name (the name is not important) then click OK

Within Outlook go to File > Options > Trust Center > Trust Center Settings (This may differ on your version)

Under Macro Settings change this to "Notifications for digitally signed macros, all other macros disabled"

This should allow any digitally signed Macro's to run which we are about to create

Press Alt and F11 in Outlook

Drill down to Project1 > Microsoft Outlook Objects > ThisOutlookSession

Paste the code below into the blank section

Private Declare PtrSafe Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare PtrSafe Function SetWindowPos Lib "user32" ( _
ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_TOPMOST = -1

Private Sub Application_Reminder(ByVal Item As Object)
Dim ReminderWindowHWnd As Variant
Dim cnt As Long
On Error Resume Next
cnt = 1
Do Until (cnt > 20 Or ReminderWindowHWnd <> 0)
ReminderWindowHWnd = FindWindowA(vbNullString, cnt & " Reminder(s)")
cnt = cnt + 1
Loop
SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
End Sub

This should look like this,

Click save but before exiting we need to digitally sign this macro.

To do this go to Tools > Digital Signature and choose the self signed certificate created earlier, then click OK

Exit VBA for applications

Now if you create a calendar invite, set the reminder and save the alert it should now appear on top of other windows when the reminder was set.