Outlook: How to keep cancel meeting in calendar as organizer?
In Outlook, as a meeting organizer, when you cancel the meeting, the meeting will be auto deleted from the calendar. In some cases, you may want to keep the canceled meetings in the calendar to do some marks. However, there are no built-in features in Outlook that can handle this job. In this tutorial, it provides two VBA codes for keeping the meeting as an appointment while canceling.
VBA codes for copying canceled meeting as appointment
VBA codes for copying canceled meeting as appointment
Here are two codes for canceling the meeting and copying and pasting it as an appointment at the same time.
Note:before you enable the code, please make sure that these two options are checked:
Enable Outlook, click File > Options, in Outlook Options window, click Trust Center tab, and click Trust Center Settings, then in the Trust Center window, click Macro Settings tab, check Enable all macros (not recommended; potentially dangerous code can run) and Apply macro security settings to installed add-ins options. Click OK > OK to close the windows. Restart Outlook.
1. Swift to Outlook Calendar view, and select the meeting that you want to cancel Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window.
2. Click Insert > Module to insert a new blank module. Then copy and paste below code to it.
Code: Copy meeting as appointment and cancel it
Sub CopyMeetingAsAppointmentBeforeCancel()
'UpdatebyExtendoffice20221129
Dim xAppointmentItem As AppointmentItem
Dim xMeetingItem As AppointmentItem
On Error Resume Next
Set xMeetingItem = GetCurrentItem()
Set xAppointmentItem = Application.CreateItem(olAppointmentItem)
With xAppointmentItem
.Subject = "Canceled: " & xMeetingItem.Subject
.Start = xMeetingItem.Start
.Duration = xMeetingItem.Duration
.Location = xMeetingItem.Location
.Body = xMeetingItem.Body
.Save
.Move Application.ActiveExplorer.CurrentFolder
End With
With xMeetingItem
.MeetingStatus = olMeetingCanceled
.Send
.Delete
End With
Set xAppointmentItem = Nothing
Set xMeetingItem = Nothing
End Sub
Function GetCurrentItem() As Object
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = Application.ActiveInspector.CurrentItem
End Select
End Function
3. Click Run button or press F5 key, now the selected meeting has been canceled and a new appointment named Cancled & subjet.
If you want to copy and paste the meeting as an appointment in another calendar and then cancel the meeting, use below code:
Code: Copy meeting as appointment in another calendar and cancel it
Sub CopyMeetingAsAppointmentToCalenderBeforeCancel()
'Updatebyextendoffice20221129
Dim xDestCalendar As Outlook.MAPIFolder
Dim xNameSpace As Outlook.NameSpace
Dim xAppointmentItem As AppointmentItem
Dim xMeetingItem As AppointmentItem
On Error Resume Next
Set xNameSpace = Application.GetNamespace("MAPI")
Set xDestCalendar = xNameSpace.PickFolder
If xDestCalendar.DefaultItemType <> olAppointmentItem Then
MsgBox "Please Select calendar folder. ", vbOKOnly + vbInformation, "Kutools for Outlook"
Exit Sub
End If
Set xMeetingItem = GetCurrentItem()
Set xAppointmentItem = Application.CreateItem(olAppointmentItem)
With xAppointmentItem
.Subject = "Canceled: " & xMeetingItem.Subject
.Start = xMeetingItem.Start
.Duration = xMeetingItem.Duration
.Location = xMeetingItem.Location
.Body = xMeetingItem.Body
.Save
.Move xDestCalendar
End With
With xMeetingItem
.MeetingStatus = olMeetingCanceled
.Send
.Delete
End With
Set xDestCalendar = Nothing
Set xNameSpace = Nothing
Set xAppointmentItem = Nothing
Set xMeetingItem = Nothing
End Sub
Function GetCurrentItem() As Object
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = Application.ActiveInspector.CurrentItem
End Select
End Function
Click Run button or press F5 key, a Select Folder dialog pops out for you to choose a calendar folder to paste the appointment, then click OK.
Now the meeting has been canceled and copied and pasted as an appointment in the calendar folder you choose.
Kutools for Outlook - Brings 100 Advanced Features to Outlook, and Make Work Much Easier!
- Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by custom; Auto Reply without exchange server, and more automatic features...
- BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
- Reply (All) With All Attachments in the mail conversation; Reply Many Emails in seconds; Auto Add Greeting when reply; Add Date into subject...
- Attachment Tools: Manage All Attachments in All Mails, Auto Detach, Compress All, Rename All, Save All... Quick Report, Count Selected Mails...
- Powerful Junk Emails by custom; Remove Duplicate Mails and Contacts... Enable you to do smarter, faster and better in Outlook.

