Article ID: 195591
Article Last Modified on 6/6/2005
strAvail = objAddressEntry.GetFreeBusy(StartTime, EndTime, Interval)A description of each follows:
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD>
<TITLE>Free Busy Information</TITLE>
</HEAD>
<BODY>
<TABLE ALIGN=RIGHT BORDER>
<TH>Status<TH>Color
<TR><TD>Free<TD bgcolor=white> </TR>
<TR><TD>Tenative<TD bgcolor=lightblue> </TR>
<TR><TD>Busy<TD bgcolor=blue> </TR>
<TR><TD>Out-of-Office<TD bgcolor=purple> </TR>
</TABLE>
<P>
<%
On Error Resume Next
Const cdoDistList = 1
Dim objSession
Dim strProfileInfo
strProfileInfo = "ServerName" & vbLF & "MailboxName"
Set objSession = CreateObject("MAPI.Session")
objSession.Logon , , False, True, 0, True, strProfileInfo
Set objMessage = objSession.Outbox.Messages.Add
Set objRecips = objMessage.Recipients
' Add the users or Distribution lists that you would like to
' see free/busy information.
objRecips.Add("user1")
objRecips.Add("distList1")
For Each r In objRecips
' If it is a distribution list, do the following.
If r.AddressEntry.DisplayType = cdoDistList Then
' Get the individual members, and add them.
Set objMembers = r.AddressEntry.members
For Each mem In objMembers
objRecips.Add(mem.address)
Next
' Remove the distribution list from the recipients' collection.
r.delete
End If
Next
objRecips.Resolve
Response.Write( "<TABLE border align=center>" & vbLF _
& "<TR><TH>Name" )
' Create the column headers.
For j = 0 To 23
temp = j Mod 12
If temp = 0 Then temp= 12
Response.Write("<TH>" & temp)
Next
For Each r In objRecips
Response.Write( "<TR><TD>" & r.name )
' When checking the free/busy information, pass in the start
' date/time, end date/time, and interval in minutes.
' Get Today's date.
objDate1= Date()
' Get Tommorow's date.
objDate2= Date() + 1
' Retrieve the Free/Busy Information from between to two
' time periods.
' If the user does not have any appointments
' on their calendar GetFreeBusy will return in error.
' This error check creates a string of zeros
' representing availability.
FreeBusyInfo =r.GetFreeBusy(objDate1,objDate2,60)
If Err Then '<< The only line that is changed.
FreeBusyInfo = String(24,"0")
Err.Clear
End If
' Look at each of the time blocks returned and decide what the
' status is. Each segement will be a table cell.
For i = 1 To Len(FreeBusyInfo)
' If the person is available leave the color white.
' If the person is tenative set to the color to light blue.
' If the person has a commitment set the color to blue.
' If the person is oof set the color to purple.
Select Case Mid(FreeBusyInfo, i, 1)
Case "0"
Response.Write( "<TD bgcolor=white> " )
Case "1"
Response.Write( "<TD bgcolor=lightblue> " )
Case "2"
Response.Write( "<TD bgcolor=blue> " )
Case "3"
Response.Write( "<TD bgcolor=purple> " )
End Select
Next
' End of 1 person's data.
Response.Write( "</TR>" )
Next
Set objMessage = Nothing
objSession.Logoff
Set objSession = Nothing
%>
</BODY>
</HTML>
186753 How To Check Someone Else's Schedule for Free/Busy Information
Keywords: kbhowto kbdocfix KB195591