To use this macro with a calendar in another folder (such as to move appointments to a hotmail or iCloud calendar), you need to use the function found at Working with VBA and non-default Outlook Folders. Instructions to use other calendar folders in your default data file are there also.
Replace pst-display-name with the name as seen in the folder list.
For a version of this macro that copies new appointments that have Show time as set to Busy to another calendar, see Copy new appointments to another calendar using VBA
To use with Contacts, use olFolderContacts instead of olFolderCalendar.
VBA: Move Appointments to a different calendar
To use, check your Macro security setting; it needs to be on low while testing. Press Alt+F11 to open the VBA Editor. Expand the project folder and paste this into ThisOutlookSession. If you are moving the appointments to a different pst or data file, you will need to get the function from this page. It can be pasted at the end of ThisOutlookSession or you can insert a Module and paste it into the module.
To test: Click in the Application_Start then click the Run button. Open the default Inbox and create an appointment. Check the Calendar folders. Is the appointment in the desired folder?
Dim WithEvents newCal As Items Private Sub Application_Startup() Dim NS As Outlook.NameSpace Set NS = Application.GetNamespace("MAPI") Set newCal = NS.GetDefaultFolder(olFolderCalendar).Items Set NS = Nothing End Sub Private Sub newCal_ItemAdd(ByVal Item As Object) Set CalFolder = GetFolderPath("datafile-display-name\Calendar") Item.Move CalFolder End Sub
Move contacts to a different folder
The same method can be used with contacts. Don't forget, if you are moving the appointments to a different pst or data file, you will need to get the function from this page.
Dim WithEvents newContact As Items Private Sub Application_Startup() Dim NS As Outlook.NameSpace Set NS = Application.GetNamespace("MAPI") Set newContact = NS.GetDefaultFolder(olFolderContact).Items Set NS = Nothing End Sub Private Sub newContact_ItemAdd(ByVal Item As Object) Set ContactFolder = GetFolderPath("datafile-display-name\Contacts") Item.Move ContactFolder End Sub