Following code sample uses CDO (Collaboration Data Objects) to
iterate through an Exchange server and display appointments for a user's mailbox in a table. The parameter it takes is the number of days to look ahead for. Since the code doesn't use the renderer object, you end up with easier control over the
output.
<%
'This function requires CDOconstants.inc
Sub cdoCalSummary(intNumOfDays,strServerName,strMailBoxName)
DIM objSession,strPassword,strProfileInfo
DIM objCalendar, objCalMsgColl, StartTime,EndTime,
objAppointmentFilter
DIM objAppointmentFilterField2, objAppointmentFilterField1,msg
DIM dtStartTime
DIM dtEndTime
Set ObjSession=Server.CreateObject ("MAPI.Session")
'Logon to exchange server
strPassword=""
strProfileInfo= strServerName + vbLF + strMailBoxName
objSession.Logon "", "", False,True, 0, TRUE, strProfileInfo
Set objCalendar =
objSession.GetDefaultFolder(CdoDefaultFolderCalendar)
Set objCalMsgColl= ObjCalendar.Messages
'Based on the number of days to look ahead in the calender, set the
'start and stop dates
dtStartTime = date
dtEndTime = dateadd("d",intNumOfDays,date)
'Filter out the dates that don't fall in between the start
and end dates
Set objAppointmentFilter = objCalMsgColl.Filter
'The constants below are defined in CDOConstants.inc
Set objAppointmentFilterField2 =
objAppointmentFilter.Fields.Add(CdoPR_END_DATE, StartTime)
Set objAppointmentFilterField1 =
objAppointmentFilter.Fields.Add(CdoPR_START_DATE, EndTime)
%>
<table>
<%
'Iterate through collection of messages and summarize the events.
FOR EACH msg in objCalMsgColl
%>
<tr>
<td><img src="/_images/tick2.gif"
border="0" width="7"
height="9">
<span class="strtpg-links-item">From
<%=msg.starttime%> to
<%=msg.endtime%>:<br>
<%=msg.subject%>
<br></span>
</td>
</tr>
<%
NEXT
%>
</table>
<%
END SUB
%>