Last reviewed on May 8, 2014   —  21 Comments

Some users like to keep a history of all appointments, including canceled meetings. However, when you delete the cancellation notice from your Inbox, it deletes the meeting from the calendar too.

I want to keep canceled meetings on my calendar as it is useful when reviewing my calendar and wondering why I didn’t attend other meetings.

Most people want to clear out their Inbox and delete the cancellation notice, but to avoid removing the canceled meeting from your calendar, you need to keep the meeting cancellation notice. As long as the meeting cancellation notice remains in your mailbox and out of the Deleted Items folder, the meeting item remains on your calendar.

Solutions

Meeting invitees have two options: They can create a folder to move the meeting cancellation notices into or they can use use a run a script rule to convert canceled meetings into appointments when the cancellation notices arrive. This will allow to you delete the meeting cancellation notice.

These options won't work for the meeting organizer. While you can get the cancelled meeting from the Deleted Items folder and move it back to the calendar, it's still a meeting. If you decide to delete it, Outlook will want to send another cancellation.

If the organizer needs to keep a copy of canceled meetings, he needs to create a copy of the meeting before canceling it. In Outlook 2010, right click and drag the meeting to a different calendar folder to create a copy. On page 2, we have a code sample organizers can use to copy the meeting request before canceling it.

Canceled meetings are left on Resource calendars. See Remove Canceled Meeting Requests from Resource Calendarfor a VBA sample that can remove the cancellation notices from Resource calendars.

Run a Script Rule to Convert a Canceled Meeting to an Appointment

Open Outlook's VBA editor (Alt+F11), expand Microsoft Office Outlook Objects then double click on ThisOutlookSession. Type or paste the code into the module, then create the rule with the 'run script' Action and select this script.

Sub CopyMeetingtoAppointment(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Canceled" Then
  Exit Sub
End If

Dim oAppt As AppointmentItem
Dim cAppt As AppointmentItem

Set cAppt = oRequest.GetAssociatedAppointment(True)
Set oAppt = Application.CreateItem(olAppointmentItem)

'I added (Rule) to the subject so I could see the rule was working. 
    oAppt.Subject = "(Rule) Canceled: " & cAppt.Subject
    oAppt.Start = cAppt.Start
    oAppt.Duration = cAppt.Duration
    oAppt.Location = cAppt.Location
    oAppt.Display
    oAppt.Save

    Set oAppt = Nothing
    Set cAppt = Nothing
End Sub

Next page >> Macro for Organizers to Copy then Cancel Meetings

Comments

  1. Mark Norden says

    Your "Run a Script Rule to Convert a Canceled Meeting to an Appointment" has been extremely helpful preventing those "blank spots" on my calendar and why didn't I use the time. But I also have users that do continues updates on meetings by changing the time to move it forward to new days. That still leaves blank spots and missing meeting time on my calendar. Is there a way to perform this same function when a meeting update that changes just the date & time?

    • Diane Poremsky says

      Glad you like it. Try If oRequest.MessageClass < > "IPM.Schedule.Meeting.Request" Then - you'll probably want to include a subject check for 'update'.

      You can use two separate rules or merge one together.

  2. Larry Sinkuler says

    Keep Canceled Meetings on Outlook’s Calendar
    is hter somewhere i can find how to then create the rule with the 'run script' Action and select this script.

  3. Bernt Swendgaard says

    Is there any way of "un-cancelling" a serie of repeating meetings? I have cancelled one of these meetings, and it seems like even the new invites (due to the "lost" serie) in the same meeting serie arrives to me as already cancelled. Any fix?

    • Diane Poremsky says

      No, you can't uncancel a meeting. Sorry. Are the people accepting it on an apple device? It might be a bug...

  4. Bernt Swendgaard says

    OK, Thanks Diane.

    I might have acceptet the meeting on an Apple devise myself...
    Good to know for future handling of meeings replies.. not to be accepted on Apple devices... for now..

  5. Scott says

    Thanks for this ...its exactly what I need.

    I've followed the steps, but its not working. I have Outlook 2010.

    Other than a 'run the script' action in rules, is there something specific I need in the rules to make this work?

    • Diane Poremsky says

      Is macro security set to low? Check in file, options, trust center, macro security.

  6. Scott says

    Thanks Diane ... there are 4 options in that dialog ... 1) Disable all, 2) Notify for digitally signed, all others disabled, 3) notifications for all macros, and 4) enable all macros. Mine was set to option 2 ... I changed it to option 3 and then to option 4, as well as restarted. Any other suggestions?

    • Diane Poremsky says

      it should work on the 4th one. can you post the code you are using so i can check it.

  7. Scott says

    My intent was to copy from above as is:

    Sub CopyMeetingtoAppointment(oRequest As MeetingItem)

    If oRequest.MessageClass "IPM.Schedule.Meeting.Canceled" Then
    Exit Sub
    End If

    Dim oAppt As AppointmentItem
    Dim cAppt As AppointmentItem

    Set cAppt = oRequest.GetAssociatedAppointment(True)
    Set oAppt = Application.CreateItem(olAppointmentItem)

    'I added (Rule) to the subject so I could see the rule was working.
    oAppt.Subject = "(Rule) Declined: " & cAppt.Subject
    oAppt.Start = cAppt.Start
    oAppt.Duration = cAppt.Duration
    oAppt.Location = cAppt.Location
    oAppt.Display
    oAppt.Save

    Set oAppt = Nothing
    Set cAppt = Nothing
    End Sub

    Wondering if there's an issue with my task rule?

    • Scott says

      Thanks Diane ... is there anything special I need to include or not include in the rule? I've tried a number of options, but still no success ...

    • Diane Poremsky says

      Are you using any other actions in the rule? The run a script rule should be the only action. I'll triple check it just to make sure nothing got messed up.

  8. Scott says

    I only have the one action ... it says:
    Apply this rule after the message arrives run Project1.ThisOutlookSession.CopyMeetingtoAppointment

  9. Emelie says

    When I try to run the script I get the error message "unexpected function or variable". I've followed the guide here and on your other page Outlook's Rules and Alerts: Run a Script. I don't think there is anything wrong with my rules. I choose grade tree in the macro security center, and I think I have accepted the macro - so that would be running. Might the problem be with the general security? I am not using outlook at home.

    • Diane Poremsky says

      Did you either restart Outlook or click in the Application_Startup macro to kick start it?

  10. Rui Dias says

    Hello All, somebody knows what I need to do in order to Keep the previous meeting on Outlook's Calendar even I perform a new scheduling, meaning today I had a meeting them the topic was not closed so I sent a new invitation for tomorrow, but the meeting from today disappears from the calendar... Thanks,

Leave a Reply

Please post long or more complicated questions at OutlookForums by Slipstick.com.

If the Post Comment button disappears, press your Tab key.