Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim outlookvcs As New System.Text.StringBuilder
Dim subject As String
Dim content As String
Dim startdate As DateTime
Dim enddate As DateTime
' SET SUBJECT HEADER
subject = "TESTING"
' SET CONTENT [use '=0D' to make outlook perform a line break]
content = "There is some content here"
' SET DATES
startdate = New DateTime(2007, 12, 25, 12, 0, 0)
enddate = New DateTime(2007, 12, 25, 19, 30, 0)
With outlookvcs
.Append("BEGIN:VCALENDAR" & vbLf)
.Append("PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN" & vbLf)
.Append("VERSION:1.0" & vbLf)
.Append("BEGIN:VEVENT" & vbLf)
.Append("DTSTART:" & str_outlookdate(startdate) & "T" & str_outlooktime(startdate) & "Z" & vbLf)
.Append("DTEND:" & str_outlookdate(enddate) & "T" & str_outlooktime(enddate) & "Z" & vbLf)
.Append("UID:1" & vbLf)
.Append("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & content & "=0A" & vbLf)
.Append("SUMMARY;ENCODING=QUOTED-PRINTABLE:" & subject & vbLf)
.Append("PRIORITY:3" & vbLf)
.Append("END:VEVENT" & vbLf)
.Append("END:VCALENDAR" & vbLf)
End With
Response.Clear()
Response.ContentType = "text/calendar"
Response.AddHeader("content-disposition", "attachment; filename=outlook_calendar_appointment.vcs")
Response.Write(outlookvcs)
Response.End()
End Sub
Private Function str_outlookdate(ByVal dat_date As Date) As String
str_outlookdate = Format(dat_date, "yyyyMMdd")
End Function
Private Function str_outlooktime(ByVal dat_time As Date) As String
str_outlooktime = Format(dat_time, "HHmmss")
End Function