It is vacation time. You are looking forward to some days off , and therefore want to cancel appointments in Outlook that either you scheduled or accepted.
This takes time even if you are quick with keyboards, because for each appointment you need some mouse clicks and to enter the cancellation message.
Remedy is brought by a VBA script, taking over this annoying task.
Since for each week there are a dozen meetings or more, this script will save me tons of time and effort and errors.
This post is available in German, too: Urlaubszeit ‒ viele Termine in Outlook schneller absagen
Steps for cancelling Outlook appointments
The following steps you manually do for each appointment:
- In your calendar you select all meetings that you want to cancel, regardless whether you are the one who has invited, or are just participant.
- Then you start removal by pressing the delete key, triggering a whirl of windows.
- For all own appointments Outlook opens the calendar item. Here you enter a message for cancelling and click “Send”. For each meeting this makes at least three clicks and four key strokes. If you are good.
- For all accepted appointments Outlook asks if you want to cancel with a message to the organizer. Being nice to your colleagues you click yes and fill the message window. For each meeting at least four clicks and four key strokes. If you are good.
Easier with Automation
Most often you want to send the same cancel message to all and just cancel this recurring item, not the whole series.
That means there is nothing to decide for each appointment, and nothing to re-phrase, but you still need to click fresh and copy & paste.
For this, computer science gave us scripting languages. In my concrete case my Visual Basic script is called BulkDeleteAppointments.bas. This takes on the task for you.
- In Outlook you select either a date range in the calendar view or multiple calendar items.
- You have just internal meetings in the date range of question that should all receive the same message? Then select the date range.
- You want to cancel multiple meetings with the same message, but retain others? Then select multiple calendar items using the Ctrl- or Shift-key.
- With Alt-F8 you open the Macro dialog and choose the macro BulkDeleteAppointments. It asks you for the message to send, then creates the cancellation notes and deletes the appointments. Finished.
Be careful, because the script does not ask for confirmation.
If you do not trust the script or me, then first set Outlook into offline mode and only then execute BulkDeleteAppointments. Sometimes the script does throw an error, which seems to be caused by some unhandled appointment properties. In this case simply re-start the script on the remaining appointments.
Setup
In order to use the script you need to integrate it into Outlook. To do that you import it into the macro editor and digitally sign it for Outlook to feel safe.
- Download BulkDeleteAppointments.bas.
- In Outlook open the Macro editor with keys Alt-F11.
- In menu File select Import File.
- Select the downloaded script BulkDeleteAppointments.bas.
-
MS Office Selfcert Create a new digital signature by running C:\Program Files\Microsoft Office\root\Office16\selfcert.EXE. Instead of Office16 the folder could have a different name in your system. Enter a name for your certificate and confirm.
- Sign in the macro editor by clicking menu Tools, Digital Signature… and there select your newly created certificate.
Done.
What do you automate?
This script you can see on Github as well as modify.
So what else do you automate in Outlook?
If you like the script, or if you have further concrete ideas, then please comment and sign up for my free newsletter. With this, you never miss out on news about my productivity tips. If there is enough interest I may create an Outlook Add-In from the script, making it easier to install.
Photo: Joachim Schlosser, License Creative Commons Attribution Share-Alike
Awesome Outlook macro!!! It is so easy to use and does exactly what I need – bulk delete meetings! One question – the meetings I’m deleting I want to delete without a message going back to the recipient. Is there VBA code to just delete the meeting and not send an email?
Glad that the macro does help you. If you do not want messages to go out at all, you’d have to modify the code accordingly. If you just want to have the meeting decline go out with no additional text, just empty the text prompt when executing the macro.