Here is the routine that I use to create a calendar event. For setup purposes, we create both a setup and takedown calendar message.
Sub make_appt()
Dim olApp As Outlook.Application
Dim olappt As Outlook.AppointmentItem
Dim olNameSpace As Outlook.NameSpace
Dim olRecipient As Outlook.Recipient
Dim SendTo As String
Dim mystart As String
Dim myend As String
Dim mySQL As String
Dim tmpID As String
Dim NewID As Long
mystart = txtSetup(1).Text & Space(1) & cboSetup(0).Text & Space(1) & lstSetup(0).Text
myend = DateAdd("n", 15, mystart)
Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI"
'Name of the recipient as entered for email
Set olRecipient = olNameSpace.CreateRecipient("Help Center (IMB Computer)"

' Set olRecipient = olNameSpace.CreateRecipient("Burnham, Paul"

Set olappt = olNameSpace.GetSharedDefaultFolder(olRecipient, olFolderCalendar).Items.Add
With olappt
'Create the setup appointment
.Location = txtSetup(0).Text
.Subject = "Hardware setup"
.Body = txtSetup(3).Text
.Start = CDate(mystart)
.End = CDate(myend)
.ReminderMinutesBeforeStart = 15
.Save
End With
'The appointment has been set, but we need to create an appointment record to give us the
'the information to delete the correct record if a setup appointment is cancelled
tmpID = Trim(olappt.EntryID)
NewID = Next_ID("NEXT_APPT"

mySQL = "insert CalendarAppt(Recnum, EntryID, ApptRecipient, DateTimeStart, DateTimeEnd, ApptSubject, CheckoutID, Voided)" & _
" Values(" & NewID & ", '" & tmpID & "', '" & SendTo & "', '" & LTrim(mystart) & "', '" & LTrim(myend) & "', 'Hardware Setup', " & HcoForm.lblLIST.Caption & ", 0)"
' " Values(" & NewID & ", '" & SendTo & "', '" & LTrim(mystart) & "', '" & LTrim(myend) & "', 'Hardware Setup', " & HcoForm.lblLIST.Caption & ", 0)"
gvEXE_DB.Execute mySQL
mystart = ""
myend = ""
Set olappt = Nothing
Set olNameSpace = Nothing
Set olApp = Nothing
Set olRecipient = Nothing
mystart = txtSetup(2).Text & Space(1) & cboSetup(1).Text & Space(1) & lstSetup(1).Text
myend = DateAdd("n", 15, mystart)
'Now for the takedown entry
Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI"
' Set olRecipient = olNameSpace.CreateRecipient("Burnham, Paul"

Set olRecipient = olNameSpace.CreateRecipient("Help Center (IMB Computer)"

Set olappt = olNameSpace.GetSharedDefaultFolder(olRecipient, olFolderCalendar).Items.Add
With olappt
'Create the setup appointment
.Location = txtSetup(0).Text
.Subject = "Hardware Takedown"
.Start = CDate(mystart)
.End = CDate(myend)
.ReminderMinutesBeforeStart = 15
.Save
End With
'Here we are creating the takedown appointment record.
tmpID = Trim(olappt.EntryID)
NewID = Next_ID("NEXT_APPT"

mySQL = "insert CalendarAppt(Recnum, EntryID, ApptRecipient, DateTimeStart, DateTimeEnd, ApptSubject, CheckoutID, Voided)" & _
" Values(" & NewID & ", '" & tmpID & "', '" & SendTo & "', '" & LTrim(mystart) & "', '" & LTrim(myend) & "', 'Hardware Takedown', " & HcoForm.lblLIST.Caption & ", 0)"
gvEXE_DB.Execute mySQL
'Release the Outlook object variable
Set olappt = Nothing
Set olNameSpace = Nothing
Set olApp = Nothing
Set olRecipient = Nothing
HcoForm.lbldat(0).Caption = txtSetup(1).Text
HcoForm.lbldat(1).Caption = txtSetup(2).Text
End Sub