Shift multiple Appointments to a different time

There can be various reasons why you might need to move multiple appointments or meetings at once while wanting to maintain their mutual offset such as:

  • Swapping your regular free/work day, illness, Holiday or another change of schedule
  • A sync with a mobile device or published calendar website gone wrong
  • Change of time zone and you want to move back some items to their original time rather than be recalculated based on the new time zone (your morning run, or medicine time)
  • DST madness or when the Time Zone Data Update Tool (32-bit, 64-bit) fails.

While it is easy enough to move around just a few appointments in one go, moving around a larger set is quite cumbersome. To cope with that, you can quickly move them all with the same offset with the VBA macro from this guide.

ChangeStartTime macro

The ChangeStartTime macro allows you to more easily and accurately change the starting time of multiple appointments at once.

By using for instance a search, you can quickly select all the appointments that you want to move based on your criteria such as a category, subject, location or the fact that it takes place today, this week, this month, etc…

Of course you can also use the macro without doing a search first and select the appointments that you want to move manually via CTRL+click and then select by how much you want to change their starting time.

ChangeStartTime macro - Select the offset type
First, select the time unit that you want to use for moving…

ChangeStartTime macro - Set the offset value
…and then by how much you want to move all selected items.

For an overview of search commands which you can use in the calendar see the guide; Instant Search query commands reference

Quick Install

Use the following instructions to configure the macro in Outlook;

  1. Download this code-file ( or copy the code below.
  2. Open the VBA Editor (keyboard shortcut ALT+F11)
  3. Extract the zip-file and import the ChangeStartTime.bas file via File-> Import…
    If you copied the code, paste it into a new module.
  4. Add a button for easy access to the macro.
    Alternatively, you can access the Run Macro dialog (keyboard shortcut ALT+F8)
  5. Sign your code.

ChangeStartTime macro - A button can be added to the main Outlook window to easily move your selection.
A button can be added to the main Outlook window to easily move your selection.


Q: I’m receiving a warning which states that my selection contains a recurring item and that continuing deletes all exceptions. What exactly does this mean and what do I lose?

A: When using a list view or search results, any appointment or meeting which has a recurrence pattern is only shown once for all occurrences. In other words; This item acts as template for all occurrences in the series. When you make an exception to one of these occurrences, it is also stored in in this template. However, when you change the time of the template, Outlook recalculates all occurrences and will lose any exception. This also includes any attachments or notes that you associated with these exceptions. Any attachments or notes which are stored in the template itself are kept.

To move only several occurrences of a series, select them in the Day/Week/Month view and run the macro.

To prevent recurring items from showing up in your search results, add the following to your search query;

Macro code

The following code is contained in the zip-file referenced in the Quick Install. You can use the code below for review or manual installation.

Click in the area above and press CTR+A to select all. Press CTRL+C to copy the code.