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.

Find out All Other Appointments Conflicting with a Specific Appointment
- At the very outset, launch your Outlook program.
- Then, in Outlook main window, press “Alt + F11” key buttons.
- At once, you will access the Outlook VBA editor, in which you need to open an unused module.
- 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
- After that, you could exit the current window.
- Then add this macro to Quick Access Toolbar as usual.
- Later you also should insure that macros are enabled in your Outlook. Just go to “Macro Setting” to check it.
- 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:
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

