Follow-up / Review Meetings in Outlook

Sometimes you use Outlook to arrange a meeting with a bunch of people, and the last action you take is to organise a review or follow-up meeting a few days later. Wouldn’t it be handy if you could “clone” the existing meeting request to another date with small adjustments to the timing, location, and invitee list?

The trouble is, whilst the Copy command in Outlook allows you to create a duplicate event, this has limited use for all-day events, and doesn’t enable you to amend meeting details before it is saved to your calendar. Outlook provides handy Quick Action operations to let you create a new Task from a Message, or create a new meeting with preset Subject and Recipients, but nothing to help with creating new meetings based on an existing appointment.

The good news is that help is at hand! The good folk over at HowTo-Outlook have provided a guide to adding a Create new meeting based on this meeting button for all recent versions Outlook.

Their simple guide provides a short piece of VBA code that you can cut-and-paste into Outlook and link to a new “Clone meeting” button on your toolbar/ribbon. It took me about 2 minutes to get this in place, and it’s already saved more time than that.

Towards the end of their guide, HowTo-Outlook show how you can make modifications to the fields that are copied to the new appointment. I found that a number of key fields were missing from the original code, so here’s my modified block under With olApptCopy:

With olApptCopy
        .Subject = olAppt.Subject
        .Location = olAppt.Location
        .Body = olAppt.Body
        .Categories = olAppt.Categories
        .Importance = olAppt.Importance
        .Duration = olAppt.Duration
        .RequiredAttendees = olAppt.RequiredAttendees
        .OptionalAttendees = olAppt.OptionalAttendees
        .Resources = olAppt.Resources
        .ReminderSet = olAppt.ReminderSet
        .ReminderMinutesBeforeStart = olAppt.ReminderMinutesBeforeStart
        .ResponseRequested = olAppt.ResponseRequested
        .AllDayEvent = olAppt.AllDayEvent
End With

This will copy over you attendee lists, any resources needed, the meeting duration, importance flag, reminders, and whether a response from attendees is requested.