Continuing the occasional look at Outlook automation its time to see how we create a calendar item
function new-calendaritem { param ( [string]$mailbox, [datetime]$start, [datetime]$end, [string]$subject, [string]$location, [string]$body ) $outlook = New-Object -ComObject Outlook.Application $folder = get-mailfolders | where {$_.Path -like "*calendar*" -and $_.Path -notlike "*birthday*" -and $_.Path -like "*$mailbox*"} $calendar = $outlook.Session.GetFolderFromID($folder.EntryID, $folder.StoreID) $entry = $calendar.Items.Add(1) $entry.Start = $start $entry.End = $end $entry.Subject = $subject $entry.Location = $location $entry.Body = $body $entry.Save() }
The appropriate calendar is identified – remember I have 4 to choose from. The Add method is used from the calendar items collection and the properties populated.
I always enter dates like this “14 September 2011 11:00” as it removes any problems with culture. In the UK this would be “14/9/2011 11:00” but when entering in this style I have to remember to use the US format “9/14/2011 11:00”
The mailbox parameter helps identify which calendar the entry goes