Every so often I notice people talking about having web sites and email messages provide a simple way of adding items to an outlook schedule. Some MSDN event reminders from Microsoft provide something like this, while others seem not to. The following code can be used to have a website send a .vcal file that when opened will create a scheduled event in outlook. A sample with a user selectable interface is available here. In most cases, you would simply push predefined values to the user.
Public Sub PushDate(ByVal eventStart As Date, ByVal eventEnd As Date, ByVal eventSummary As String, ByVal eventDescription As String, ByVal eventLocation As String)
'Set mime types and other file related details
Response.ContentType = "text/x-vCalendar"
Response.AddHeader("content-disposition", "inline; filename=appointment2.vcs")
' Remove the charset from the Content-Type header.
Response.Charset = ""
' Turn off the view state
EnableViewState = False
' Write the vcalendar info back to the browser
Response.Write("BEGIN:VCALENDAR" & ControlChars.NewLine)
Response.Write("PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN" & ControlChars.NewLine)
Response.Write("VERSION:1.0" & ControlChars.NewLine)
Response.Write("BEGIN:VEVENT" & ControlChars.NewLine)
Response.Write("DTSTART:" & eventStart.ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z") & ControlChars.NewLine)
Response.Write("DTEND:" & eventEnd.ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z") & ControlChars.NewLine)
Response.Write("LOCATION;ENCODING=QUOTED-PRINTABLE:" & eventLocation & ControlChars.NewLine)
Response.Write("UID:15" & ControlChars.NewLine)
Response.Write("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & eventDescription & ControlChars.NewLine)
Response.Write("SUMMARY;ENCODING=QUOTED-PRINTABLE:" & eventSummary & ControlChars.NewLine)
Response.Write("PRIORITY:3" & ControlChars.NewLine)
Response.Write("End:VEVENT()" & ControlChars.NewLine)
Response.Write("End:VCALENDAR()" & ControlChars.NewLine)
' End the response
Response.End()
End Sub