jaypappas
asked on
WEBDAV - MS Exchange - Adding Calendar Appointment WITH ASSIGNED CATEGORY
I'm trying to create limited integration between our "home grown" CRM system and our Exchange Server. I have code that's working, however I cannot figure out how to pass a CATEGORY value in my code. Can someone give me the line of code I need to pass the category value?
The code below currently creates a calendar appointment but does not create a category on the appointment.
The code below currently creates a calendar appointment but does not create a category on the appointment.
<html>
<body>
<%
' Exchange server name.
strExchSvrName = "xxx"
' Mailbox folder name.
strMailbox = "yyy"
' Appointment item.
strApptItem = trim(year(date)) & "-" & trim(month(date)) & "-" & trim(day(date)) & "-" & trim(hour(now)) & trim(minute(now)) & trim(second(now))
' Username and password of appointment creator.
strUserName = "123123"
strPassWord = "xxxxx"
' URL of the appointment item.
strApptURL = "http://" & strExchSvrName & "/exchange/" & _
strMailbox & "/Calendar/" & strApptItem
' XML namespace info of the WebDAV request.
strXMLNSInfo = "xmlns:g=""DAV:"" " & _
"xmlns:e=""http://schemas.microsoft.com/exchange/"" " & _
"xmlns:mapi=""http://schemas.microsoft.com/mapi/"" " & _
"xmlns:mapit=""http://schemas.microsoft.com/mapi/proptag/"" " & _
"xmlns:x=""xml:"" xmlns:cal=""urn:schemas:calendar:"" " & _
"xmlns:dt=""urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"" " & _
"xmlns:header=""urn:schemas:mailheader:"" " & _
"xmlns:mail=""urn:schemas:httpmail:"">"
' Set the appointment item properties. The reminder time is set in seconds.
' To create an all-day meeting, set the dtstart/dtend range for 24 hours
' or more and set the alldayevent property to 1. See the documentation
' on the properties in the urn:schemas:calendar: namespace for more information.
'Eastern Standard Time Offset = 5 hours
strCalInfo = "<cal:location>test location 21</cal:location>" & _
"<cal:dtstart dt:dt=""dateTime.tz"">2008-11-18T20:50:00.000Z</cal:dtstart>" & _
"<cal:dtend dt:dt=""dateTime.tz"">2008-11-18T20:50:00.000Z</cal:dtend>" & _
"<cal:instancetype dt:dt=""int"">0</cal:instancetype>" & _
"<cal:busystatus>BUSY</cal:busystatus>" & _
"<cal:meetingstatus>CONFIRMED</cal:meetingstatus>" & _
"<cal:alldayevent dt:dt=""boolean"">0</cal:alldayevent>" & _
"<cal:responserequested dt:dt=""boolean"">0</cal:responserequested>" & _
"<cal:reminderoffset dt:dt=""int"">900</cal:reminderoffset>"
' Set the required attendee of the appointment.
strHeaderInfo = "<header:to>" & strMailbox & "</header:to>"
' Set the subject of the appointment.
strMailInfo = "<mail:subject>New Calendar Appointment Test</mail:subject>" & _
"<mail:htmldescription>This is a test description</mail:htmldescription>"
' Build the XML body of the PROPPATCH request.
strApptRequest = "<?xml version=""1.0""?>" & _
"<g:propertyupdate " & strXMLNSInfo & _
"<g:set><g:prop>" & _
"<g:contentclass>urn:content-classes:appointment</g:contentclass>" & _
"<e:outlookmessageclass>IPM.Appointment</e:outlookmessageclass>" & _
strMailInfo & _
strCalInfo & _
strHeaderInfo & _
"<mapi:finvited dt:dt=""boolean"">1</mapi:finvited>" & _
"</g:prop></g:set>" & _
"</g:propertyupdate>"
' Create the DAV PROPPATCH request.
Set xmlReq = CreateObject("Microsoft.XMLHTTP")
xmlReq.open "PROPPATCH", strApptURL, False, strUserName, strPassWord
xmlReq.setRequestHeader "Content-Type", "text/xml"
xmlReq.send strApptRequest
' The PROPPATCH request was successful.
If (xmlReq.Status >= 200 And xmlReq.Status < 300) Then
response.write "Appointment created successfully."
' Display error info.
Else
response.write "PROPPATCH status: " & xmlReq.Status & vbCrLf & _
"Status text: " & xmlReq.statusText
End If
' Clean up.
Set xmlReq = Nothing
Set xmlReq = Nothing
%>
</body>
</html>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.