Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4339584
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T11:14:09+00:00 2026-05-21T11:14:09+00:00

I searched around but couldn’t find an answer. I’m not sure if this is

  • 0

I searched around but couldn’t find an answer. I’m not sure if this is possible, but seems it is.

What I basically want is to get my free/busy status according to Outlook in to a C++ program. For example, I want to check if I have an appointment and then print out “Free” or “Busy”. Of course it will awesome if I can also get an description of the appointment.

Is there an easier way of doing this?
Any tutorial or example link owuld be greatly appreciated.

Thank you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T11:14:09+00:00Added an answer on May 21, 2026 at 11:14 am

    I think this link should help . Let me know.

    I am providing the contents of the link below :-

    Checking Free/Busy Status

    Exchange Server 2003 – Checking Free/Busy Status

    Before you send a meeting request, you can check an attendee's calendar to see when the attendee is available. The IAddressee.GetFreeBusy method returns a string of numbers that indicate the attendee's availability for a requested period of time.
    Each number in the free/busy string represents an interval of time (every ½ hour in this example). Free time returns 0, Tentative returns 1, Busy returns 2, and Out of Office (OOF) returns 3. If appointments overlap, the highest number is returned. If no free/busy data is available for the interval, the value 4 is returned.
    The following figure shows part of an attendee's calendar and the corresponding free/busy string.
    The free/busy string for a part of an attendee's calendar
    To get an attendee's free/busy status for a specific time, you can create an Addressee object and execute the IAddressee.GetFreeBusy method. You can also get the free/busy status for longer intervals and parse the string to find times the attendee is free.
    Note  You must first call the IAddressee.CheckName method and resolve the addressee before you can use the IAddressee.GetFreeBusy method.
    Note  An automated process in Microsoft® Exchange Server 2003 periodically updates the free/busy status of users. Microsoft Outlook® updates the free/busy status of Outlook users. Collaboration Data Objects (CDO) synchronizes the Outlook free/busy cache with free/busy information from CDO clients. The free/busy status is not updated immediately when a meeting is added to a user's calendar. By default, three months' worth of free/busy status is maintained in a system folder in the Exchange store.
    This topic contains Microsoft Visual Basic®, Microsoft Visual C++®, Microsoft C#, and Visual Basic .NET code examples.
    Visual Basic
    The following example returns the free/busy status of the specified user:
    ' Reference to Microsoft ActiveX Data Objects 2.5 Library
    ' Reference to Microsoft CDO for Exchange 2000 Library
    
    ' Note: It is recommended that all input parameters be validated when they are
    ' first obtained from the user or user interface.
    Function GetFreeBusyString(strUserUPN As String, dtStartDate As Date, dtEndDate As Date, Interval As Integer) As String
    
        Dim iAddr    As New CDO.Addressee
        Dim freebusy As String
        Dim Info     As New ADSystemInfo
    
        iAddr.EmailAddress = strUserUPN
        If Not iAddr.CheckName("LDAP://" & Info.DomainDNSName) Then
            ' handle error
        End If
    
        'Get the free/busy status in Interval minute intervals from dtStartDate to dtEndDate
        freebusy = iAddr.GetFreeBusy(dtStartDate, dtEndDate, Interval)
        GetFreeBusyString = freebusy
    
    End Function
    
    
    C++
    The following example returns the free/busy status of the specified user:
    /*
     Assume that the following paths are in your
     INCLUDE path.
     %CommonProgramFiles%\system\ado
     %CommonProgramFiles%\microsoft shared\cdo
    */
    
    #import <msado15.dll> no_namespace
    #import <cdoex.dll> no_namespace
    #include <iostream.h>
    
    // Note: It is recommended that all input parameters be validated when they are
    // first obtained from the user or user interface.
    bstr_t getFreeBusyString( const bstr_t& userUPN, const bstr_t& domainDNSName, DATE startDate, DATE endDate, long Interval) {
    
       IAddresseePtr iAddr(__uuidof(Addressee));
    
       iAddr->EmailAddress = userUPN;
       if(iAddr->CheckName(bstr_t("LDAP://") + domainDNSName, bstr_t(), bstr_t()) == VARIANT_FALSE) {
          cerr << "Error looking up name!" << endl;
          _com_issue_error(E_FAIL);
       }
    
        //Get the free/busy status in Interval minute intervals from startDate to endDate
       return iAddr->GetFreeBusy(startDate, endDate, Interval, bstr_t(), bstr_t(), bstr_t(), bstr_t());
    
    }
    
    C#
    The following example returns the free/busy status of the specified user:
    // Reference to Microsoft ActiveX Data Objects 2.5 Library
    // Reference to Microsoft CDO for Exchange 2000 Library
    // Reference to Active DS Type Library
    
    // Note: It is recommended that all input parameters be validated when they are
    // first obtained from the user or user interface.
    static string GetFreeBusyString(string strUserUPN, DateTime dtStartDate,
                                    DateTime dtEndDate, int Interval)
    {
       try
       {
          // Variables.
          CDO.Addressee iAddr = new CDO.Addressee();
          string freebusy;
          ActiveDs.ADSystemInfo Info = new ActiveDs.ADSystemInfo();
    
          iAddr.EmailAddress = strUserUPN;
          if  (!(iAddr.CheckName("LDAP://" + Info.DomainDNSName, "", "")))
             throw new System.Exception("Error occured!");
    
          // Get the free/busy status in Interval minute
          // intervals from dtStartDate to dtEndDate.
          freebusy = iAddr.GetFreeBusy(dtStartDate, dtEndDate,
                                       Interval, "", "", "", "");
    
          return freebusy;
       }
       catch (Exception err)
       {
          Console.WriteLine(err.ToString());
          return "";
       }
    }
    Visual Basic .NET
    The following example returns the free/busy status of the specified user:
    ' Reference to Microsoft ActiveX Data Objects 2.5 Library
    ' Reference to Microsoft CDO for Exchange 2000 Library
    ' Reference to Active DS Type Library
    
    ' Note: It is recommended that all input parameters be validated when they are
    ' first obtained from the user or user interface.
    Function GetFreeBusyString(ByVal strUserUPN As String, ByVal dtStartDate As Date, _
                               ByVal dtEndDate As Date, ByVal Interval As Integer) As String
    
       Try
          ' Variables.
          Dim iAddr As New CDO.Addressee()
          Dim freebusy As String
          Dim Info As New ActiveDs.ADSystemInfo()
    
          iAddr.EmailAddress = strUserUPN
          If Not iAddr.CheckName("LDAP://" & Info.DomainDNSName) Then
             Throw New System.Exception("Error occured!")
          End If
    
         ' Get the free/busy status in Interval minute intervals
         ' from dtStartDate to dtEndDate.
         freebusy = iAddr.GetFreeBusy(dtStartDate, dtEndDate, Interval)
         GetFreeBusyString = freebusy
    
       Catch err As Exception
          Console.WriteLine(err.ToString())
          GetFreeBusyString = ""
       End Try
    End Function
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've searched around but I can't find any information about this; maybe I'm not
I searched old questions, but couldn't find an answer or wrap my head around
So I've searched around and I couldn't find a definitive answer. I want my
I have searched it all around but couldn't find it all i want to
I searched around but couldn't find exactly what I'm looking for. I have a
I've searched around online but can't find what I'm after. Basically, during an install,
I searched around a little bit for information on this but didn't find anything
I've searched around, and saw some tips, but still couldn't find the solution to
I searched, but surprisingly couldn't find an answer. I have a long NSString that
I searched around a bit, but could not find anything useful. Could someone help

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.