How to Batch Cancel All Outlook Meetings Scheduled in a Specific Date Range

If you want to cancel all meetings scheduled in a specific date range in your Outlook, you can use the means introduced in this article. It can save you from searching and canceling such meetings manually.

If, for some reasons, you can’t organize or participate in the meetings which will be held in a certain future date range, you may wish to cancel all of such meetings. Generally, you have to firstly find out them and then cancel them one by one. It’ll be quite troublesome. Therefore, in the followings, we will share you another way, which is far more convenient.

Batch Cancel All Outlook Meetings Scheduled in a Specific Date Range

Batch Cancel All Meetings Scheduled in a Specific Date Range

  1. At the very beginning, start your Outlook program.
  2. Then, in the Outlook, you need to press “Alt + F11” key buttons.
  3. Next, you will get into the “Microsoft Visual Basic for Applications” window.
  4. In this window, you should open an unused module or just insert a new one.
  5. Subsequently, you can copy the following VBA code into this module.
Sub BatchCancelAllMeetingsInSpecificDateRange()
    Dim dStartDate As Date
    Dim dEndDate As Date
    Dim objCalendarFolder As Outlook.folder
    Dim objItems As Outlook.Items
    Dim objItemsInDateRange As Outlook.Items
    Dim objAppointment As Outlook.AppointmentItem
    Dim objResponse As Outlook.MeetingItem
    'Specify the start date and end date
    dStartDate = InputBox("Enter the start date:", , "10/1/2017")
    dEndDate = InputBox("Enter the end date:", , "10/8/2017")
    If dStartDate <> #1/1/4501# And dEndDate <> #1/1/4501# Then
       'Select a calendar folder
       Set objCalendarFolder = Outlook.Application.Session.PickFolder
       Set objItems = objCalendarFolder.Items
       objItems.IncludeRecurrences = True
       objItems.Sort "[Start]"
       'Get the appointments in the specific date range
       strFilter = "[Start] >= " & Chr(34) & dStartDate & " 00:00 AM" & Chr(34) & " AND [End] <= " & Chr(34) & dEndDate & " 11:59 PM" & Chr(34)
       Set objItemsInDateRange = objItems.Restrict(strFilter)
       objItemsInDateRange.Sort "[Start]"
       For Each objAppointment In objItemsInDateRange
           'Cancel the meetings in this date range
           If objAppointment.MeetingStatus = olMeeting Then
              If objAppointment.Organizer = Outlook.Session.CurrentUser Then
                 objAppointment.MeetingStatus = olMeetingCanceled
                 Set objResponse = objAppointment.Respond(olMeetingDeclined)
              End If
            End If
    End If
End Sub

VBA Code - Batch Cancel All Meetings Scheduled in a Specific Date Range

  1. Eventually, you could run this macro right now.
  • In the current macro window, press “F5” key button.
  • Next, you will be required to specify the date range.Specify Date Range
  • After that, another dialog box will display, which demands you to opt for a source calendar folder and click “OK”.
  • Lastly, when the macro finishes, you could see that all the meetings in the specific date range have been canceled.
  • In the “Sent Items” folder, you can find the meeting cancellations, like the screenshot below:Meeting Cancellations

Fix Outlook Errors

If you have used Outlook for decades, you must have encountered several errors. Fortunately Outlook comes packed with an inbuilt repair tool – Scanpst. You can use it to fix Outlook errors. Yet, if it fails, your last resort is external fix tools like DataNumen Outlook Repair. It can scan Outlook file and fix most errors, and even easily restore damaged Outlook data.

Author Introduction:

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

2 responses to “How to Batch Cancel All Outlook Meetings Scheduled in a Specific Date Range”

  1. Follow-up (Just to make sure): This only cancels the occurrence of a meeting (If a meeting within the date range is reoccurring), and not the entire series, yes?

Leave a Reply

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