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.
<%
'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
%>