Excel Create an Outlook calendar event

calendar, excel, outlook, vba

Solution

Slight improvement on other answer

Sub createappt()
    
    Const olFolderCalendar = 9
    Const olAppointmentItem = 1 '1 = Appointment
    
    Set objOutlook = CreateObject("Outlook.Application")
    
    'Set objOutlook = GetObject(, "Outlook.Application")  ' outlook already open
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    Set Items = objNamespace.GetDefaultFolder(olFolderCalendar).Items
    
    Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar).Folders("subfolder")
    Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar) ' main calender
    Set objapt = objCalendar.Items.Add(olAppointmentItem)
    objapt.Subject = "Test" 'Owner
    objapt.Start = Date + TimeValue("08:00:00")
    objapt.Duration = 60 * 8 'Duration(in minutes) OR End(I'm not sure so try both)
    objapt.End = Date + TimeValue("16:00:00")
    objapt.Save
End Sub

Problem

Can you run a macro from Excel that can interact with Outlook and create and event on the calendar?

Original source