Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm just starting to use Windows 7 and I want to know how to make my Outlook reminders pop up and show themselves prominently. They keep opening discreetly, as just another window in the Outlook stack on the taskbar. As a result, I keep overlooking them because they pop up behind everything else.

How do I make them less easy to overlook?

(Clearly, one usually doesn't want obnoxious apps that push themselves to the forefront. But there are a few places where such behavior is desirable, and Outlook calendar reminders are one of them.)

share|improve this question
2  
This is so necessary. If one falls into intense concentration it's very easy to miss a reminder and notice it buried under other windows only after you're late. It's ridiculous that it's not possible with some simple setting. What good is a reminder if you don't get it promptly?! –  Mario Apr 17 '14 at 18:45

7 Answers 7

up vote 44 down vote accepted

I had the same problem with Outlook 2010. Use the steps mentioned below, it works like a charm. Don't forget to enable all macros: Trust Center > Macro Settings.

  • Create a Digital certificate for later: Hit Start and type 'certificate', select 'Digital Certificate for VBA Projects'
  • Enter a name for your certificate. Click OK. Open Outlook and hit Alt + F11 to start the VBA editor.
  • In the tree on the left, expand 'Microsoft Office Outlook Objects' and double click on 'ThisOutlookSession'
  • Paste in this code:

    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
    On Error Resume Next
    ReminderWindowHWnd = FindWindowA(vbNullString, "1 Reminder")
    SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
    
    End Sub
    
  • Sign the Macro so it will run: Tools > Digital Signature... and choose the certificate you created earlier

  • Close the VBA window
  • Enable all macros in File > Options > Trust Center > Trust Center Settings > Macro Settings
share|improve this answer
2  
i noticed , sometimes (normally when you start Outlook) the first reminder will not stay on top. Once you click Dismiss and close the reminder all subsequent reminders stay on top. Dont know why. –  Gullu Aug 16 '12 at 19:58
1  
Is the On Error Resume Next line necessary? Is there an alternative? As a programmer, the implications of that line make me cringe. –  Justin Morgan Oct 11 '12 at 15:42
2  
The On Error Resume Next only applies to that Sub and just prevents the whole macro from crashing.. This is just standard VBA usage. –  Jeff Martin Dec 11 '12 at 15:52
1  
Thanks Gullu, this works very well! Just a side note: PtrSafe apparently isn't supported in Office 2007. –  mrt Mar 18 '13 at 13:04
1  
I had the same issue as Gullu indicated in his first comment. In order to work around that, I show a message box for the first reminder after restarting outlook (or my computer). Private messageAlreadyShown As Boolean Private Sub Application_Reminder(ByVal Item As Object) On Error Resume Next If Not messageAlreadyShown Then MsgBox "First Reminder", vbSystemModal, "" End If messageAlreadyShown = True ReminderWindow = FindWindowA(vbNullString, "1 Reminder") SetWindowPos ReminderWindow, HWND_TOPMOST, 0, 0, 0, 0, FLAGS End Sub –  helios456 Feb 18 '14 at 12:55

There is no way. Our company tried escalating it to Microsoft directly. One thing people do here is assign it a more obnoxious sound, to help notice it. But Microsoft has told us it is by design.

share|improve this answer
6  
I work in a cube farm -- I try to keep my computer quiet for others. :( –  thursdaysgeek Mar 1 '11 at 21:42
    
If they were truly designing, they would make it that way by default, but allow it to be changed. They "design", we learn to put up with it? –  thursdaysgeek Mar 1 '11 at 21:44
    
See my answer. We finally have a solution. –  Gullu Aug 16 '12 at 15:20
    
I did find a third party solution. Actual Tools Actual Window Guard $30 (which is also included in their all encompassing product Actual Windows Manager $50) allows for assigning windows to always be on top. Plus its easy to turn the feature on and off. (note it does more than just that to help make the price tag easier to accept.) I found these when trying out virtual desktop & multi-monitor utility tools. I've been using the latter for a couple of months now and am very happy with it. –  Mark Vedder Aug 23 '13 at 12:51

This was bugging me too. After some intense searching I found a partial answer: http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

If you change the "Taskbar buttons" setting under the "Taskbar and Start Menu Properties" to "Never combine," then the grouping separates and the reminder pops-up in front of whatever else you have open.

I tried to test it and found that it was inconsistent; one time it stayed hidden behind what I was working on, and another time it popped up front. In both cases there was an icon on the task bar that looked different from Outlook itself, so there was at least a chance that I would notice it.

share|improve this answer
    
Couldn't get Outlook 2013 to behave correctly even with Never Combine. Outlook 2013, Windows 7 32-bit. –  sunk818 Apr 21 at 23:50

I used Filebox eXtender and when the first reminder comes in I open it and click the new 'pin' icon at the top right of the caption bar. Then when the next reminder comes in, it comes in the foreground...

share|improve this answer
    
PinMe! will do the same. It is a free portable tool and does this one task extremely well. I've tested it Outlook 2013 and it works exactly as I want it. Outlook foreground or minimized, the calendar reminder always pops to the front. –  sunk818 Apr 21 at 23:49

The best answer I've found is here: How to get Outlook appointment reminders to pop up in front of other windows again using some simple VBA.

It entails adding a few lines of simple VBA code to "ThisOutlookSession". Now, it pops up a window every time. Much better.

  • Create a Digital certificate for later
  • Hit Start and type ‘certificate’, select ‘Digital Certificate for VBA Projects’
  • Enter a name for your certificate
  • Done
  • Open Outlook and hit Alt + F11 to start the VBA editor.
  • In the tree on the left, expand ‘Microsoft Office Outlook Objects' and double click on ‘ThisOutlookSession’
  • Paste in this code, modifying the text in quotes to suit your preferences. Leave the quotes in.

    Private Sub Application_Reminder(ByVal Item As Object)
    
    
        If TypeOf Item Is AppointmentItem Then
        MsgBox "Message text", vbSystemModal, "Message title"
        End If
    
    
    End Sub
    
  • Sign the Macro so it will run by going to Tools > Digital Signature… and choosing the certificate you created earlier

  • Close the VBA window
share|improve this answer
    
Tried this in Outlook 2010, Windows 7 but it didn't work :( –  oliman May 15 '12 at 4:49
    
Used this as part of Gullu's solution. Thanks much. –  Smandoli Sep 28 '12 at 14:16
    
This worked on Outlook 2007, while Gullu's didn't. –  Will Sheppard Sep 24 '14 at 9:50

I found an addin called ShowReminders (http://www.sagelamp.com/pages/showreminders.aspx), which brings the reminders window to the top. It even works when you minimize the reminder window.

share|improve this answer
1  
Says product is $20 as of Oct 2014. –  sunk818 Oct 29 '14 at 21:14

Same as Gullu's anwer above but with change to accommodate different window title:

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

'// TO ACCOUNT FOR WINDOW TITLE CHANGING WITH NOTIFICATION COUNT:
Private Sub Application_Reminder(ByVal Item As Object)
    Dim ReminderWindowHWnd As Variant
    'On Error Resume Next
    On Error GoTo err
    'Loop 25 times as FindWindowA needs exact title which varies according to number of reminder items...
    Dim iReminderCount As Integer
    For iReminderCount = 1 To 25
        'Try two syntaxes...
        ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder"): SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
        ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder(s)"): SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
    Next
Exit Sub
err:
    Debug.Print err.Number & " - " & err.Description & " (iReminderCount = " & iReminderCount & ")"
    Resume Next
End Sub
share|improve this answer
    
Even better would be something like Dim olApp As Outlook.Application Set olApp = New Outlook.Application iReminderCount = olApp.Reminders.Count Then you could remove the loop. –  Zusukar Mar 20 at 13:59

protected by Community Aug 16 '12 at 18:15

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.