none
Need information of get Out of Office and Calendar information from MS Exchange RRS feed

  • Question

  • I am looking for definite example on getting access to out of office information on all of our users in MS. Exchange.  I need this information such that I can access it VIA unmanaged programming languages like C++, Lazarus (object pascal).

    Also, I need to be able to retrieve information for all users for a specified date.  I can pay for assistance.

    Friday, April 17, 2015 7:05 PM

Answers

  • You can use ExecSQL instead of GetActivitiesForTimeRange, but ExecSQL will not expand the recurrences that fall into the specified range.

    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    • Marked as answer by alnickels Monday, April 20, 2015 3:52 PM
    Monday, April 20, 2015 5:50 AM

All replies

  • Outlook is a client application. I'd suggest asking Exchange specific questions on the Exchange Server Development forum instead.

    It looks like you are interested in EWS (Exchange Web Services), see EWS Managed API, EWS, and web services in Exchange for more information.

    Friday, April 17, 2015 7:13 PM
  • You can use
    1. EWS (see GetUserOofSettingsRequest on MSDN)
    2. Extended MAPI (C++ or Delphi only, not all OOF settings are available, such as OOF time range)
    3. Redemption (any language) - it exposes OOF settings through the RDOOutOfOfficeAssistant object (it wraps both MAPI and EWS access).

    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    Friday, April 17, 2015 8:01 PM
  • Which components of Redemption do I need to read the Out of Office status, dates, etc. for all users.  Once I complete this I will be looking to get Calendar information for a date range.
    Friday, April 17, 2015 9:18 PM
  • You will need to open the other user's mail box as RDOExchangeMailboxStore using RDOSession.Stores.GetSharedMailbox.

    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    Friday, April 17, 2015 9:23 PM
  • Ok.  Remember this is for all mailboxes not just shared mailboxes.  As long as we have sufficient security to access the ms exchange server.
    Friday, April 17, 2015 11:15 PM
  • It looks like I have to download Redemption and RDO.
    Friday, April 17, 2015 11:18 PM
  • Also, I downloaded the developer's edition but I don't know if it included RDO.  Can you please clarify?
    Friday, April 17, 2015 11:39 PM
  • Both RDO and Safe*Item objects are implemented by redemption.dll. The only creatable RDO object is RDOSession. Use something like the following to create RDOSession object (assuming you are using RedemptionLoader that leats you use Redemption without installing it).

    var Session : IRDOSession;
    begin
      //set up the dll locations - need to do this only once
      //RedemptionLoader.DllLocation64Bit := 'c:\ProgrammingProjects\Redemption\fpc\compiled\Redemption64.dll ';
      //RedemptionLoader.DllLocation32Bit := 'c:\ProgrammingProjects\Redemption\Redemption.dll';
      //create a Redemption object
      Session := RedemptionLoader.new_RDOSession;
      //and use it
      ShowMessage(Session.Version);
    end;
    Once you have RDOSession object, you can call RDOSession.Logon if you already have a predefined profile, LogonExchangeMailbox for Exchange 2000 - 2010, or LogonHostedExchangeMailbox for Exchange 2010 and 2013.


    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!



    Saturday, April 18, 2015 5:05 AM
  • Dmitri,

    I really like the approach taken in the creation of the Redemption product, however, I do not see much documentation on use of the object model in use by redemption.  I have done lots of Oleautomation woti Word, and Excel using publicly available documentation and some example.  I really don't see enough information that will help me come up to speed on Redemption without your assistance. 

    Like most people I am under a tight deadline to be able to read the referenced Outlook calendar for all users in the exchange server.  I have a user account that has permissions in the server.  I don't know how to authentacate for many calendars or how to access other calendars.  I will provide a filtering date range, but need information in such a way as to be able to match with the user and store in a database. 

    I am using a developers license, and have no problem purchasing a license.  I really need a solution for a demo that I will be doing early next month.

    BTW, after getting the calendar information I will need the ooo setting for each user also.  I have done limited login and logouts with Redemption in my current test environments.

    Monday, April 20, 2015 1:10 AM
  • You can either configure a profile to connect to a mailbox of a user that has access to all the mailboxes from which you want to retrieve the calendar information and use it in RDOSession.Logon or you can connect to that admin's mailbox dynamically using RDOSession.LogonExchangeMailbox (Exchange 2010 or older, you need to run your code as the domain user who owns the mailbox) or RDOSession.LogonHostedExchangeMailbox.

    Once you open the admin's mailbox, call RDOSession.GetSharedMailbox to open another user's mailbox. You can then open the Calendar folder using RDOStore.GetDefaultFolder(olFolderCalndar). To retrieve items in a given range, use RDOFolder2.GetActivitiesForTimeRange.


    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    Monday, April 20, 2015 2:48 AM
  • I gather that this is a faster route to take than the ExecSQL approach.  I might be off base here.  I am new to Redemption.
    Monday, April 20, 2015 5:28 AM
  • You can use ExecSQL instead of GetActivitiesForTimeRange, but ExecSQL will not expand the recurrences that fall into the specified range.

    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    • Marked as answer by alnickels Monday, April 20, 2015 3:52 PM
    Monday, April 20, 2015 5:50 AM
  • Thanks for your response.  At this point I don't know the difference between the technologies involved or the most effective way to achieve the needed results.
    Monday, April 20, 2015 1:01 PM
  • Have you tried to use EWS?
    Monday, April 20, 2015 2:43 PM
  • As I understand thinks Redemption bridges EWS where appropriate depending on the server (Exchange 2007, 2010, etc.) in the back end.  This should allow me to focus on my client side application.  Also, I was unable to find sufficient documentation on EWS to do what I need to do.  My goal is to extract out of office information and date specific calendar information for all users in the server.

    Monday, April 20, 2015 3:49 PM
  • Is it possible to use Redemption for MS Exchange in our local domain as well as for Office/Outlook 365?
    Tuesday, April 21, 2015 4:34 AM
  • Sure, it does not really matter whether it is a hosted or an on-premises Exchange server.

    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    Tuesday, April 21, 2015 5:25 AM