How to Quickly Find out All Other Appointments Conflicting with a Specific Appointment in Outlook

When you create or change an appointment in Outlook calendar, Outlook will auto check if there are any conflicting appointments. At this time, if you wish to check the conflicts, you can use the method introduced in this post.

Perhaps you have ever seen the “Conflicts with another appointment” text when creating or altering an Outlook appointment. It’s because that Outlook can auto check the conflicts. However, Outlook cannot help you to find the conflicts quickly by its default features. Thus, here we’ll tell you a method to generate the function to search all conflicting appointments.

Quickly Find out All Other Appointments Conflicting with a Specific Appointment in Outlook

Find out All Other Appointments Conflicting with a Specific Appointment

  1. At the very outset, launch your Outlook program.
  2. Then, in Outlook main window, press “Alt + F11” key buttons.
  3. At once, you will access the Outlook VBA editor, in which you need to open an unused module.
  4. Next, copy the following VBA code into this module.
Sub FindOutConflictingAppointments()
    Dim objAppointment As AppointmentItem
    Dim dStartTime, dEndTime As Date
    Dim strFilter As String
    Dim objAppointments As Items
    Dim objFoundAppointments As Items
    Dim objItem As AppointmentItem
    Dim i As Long
    Dim strConflicts As String
    Dim strMsg As String
 
    Select Case Application.ActiveWindow.Class
           Case olExplorer
                Set objAppointment = Application.ActiveExplorer.Selection(1)
           Case olInspector
                Set objAppointment = Application.ActiveInspector.CurrentItem
    End Select
 
    dStartTime = objAppointment.start
    dEndTime = objAppointment.End
 
    Set objAppointments = Application.ActiveExplorer.CurrentFolder.Items
 
    i = 1
 
    '1: Find all appts whose end time within the start and end time of source appt
    strFilter = "[End] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '2: Find all appts occurring within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '3: Find all appts whose start time within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [Start] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '4: Find all appts cover the entire source appt
    strFilter = "[Start] <= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] >= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
  
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    strMsg = i - 1 & " Conflicting Appointments:" & vbCrLf & vbCrLf & strConflicts
    MsgBox strMsg, vbInformation + vbOKOnly, "Check Conflicts"
End Sub

VBA Code - Find out All Other Appointments Conflicting with a Specific Appointment

  1. After that, you could exit the current window.
  2. Then add this macro to Quick Access Toolbar as usual.
  3. Later you also should insure that macros are enabled in your Outlook. Just go to “Macro Setting” to check it.
  4. Finally you can have a try.
  • Firstly, select or open an appointment, in which there is a “Conflicts with another appointment” prompt.
  • Then click on the macro button in Quick Access Toolbar.
  • At once, you will get a message that is listing all conflicting appointments, shown as the following screenshot:Message that is listing all conflicting appointments

Essential Precautions before Outlook Corruption

It is known that Outlook is prone to crash and suffer errors. Thus, it is a matter of necessity to keep well-prepared for Outlook corruption. One of the most essential precautions is the periodic backup. In addition, it’s suggested to prepare a potent specialized Outlook repair tool, like DataNumen Outlook Repair.

Author Introduction:

Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including mdf recovery and outlook repair software products. For more information visit www.datanumen.com

2 responses to “How to Quickly Find out All Other Appointments Conflicting with a Specific Appointment in Outlook”

  1. I experienced this as well. It produced events that are on different days than the meeting day that the meeting is set to recur.

  2. This located appointments on days other than the recurring meeting in question. Is there an update for Office 16 and beyond?

Leave a Reply

Your email address will not be published. Required fields are marked *