Maksym Manziuk
Maksym Manziuk

Reputation: 151

Is there a method in EWS Managed api similar to Get-CalendarProcessing method in PowerShell?

Using PowerShell I can easily get know "BookInPolicy" state in the room by executing command Get-CalendarProcessing -Identity "ROOM_NAME" | Format-List But question is perfoming something like that by using EWS manage api. I spent a lot of time exploring this issue in the internet and unfortunately i found nothing. Is it realy posible to do? I hope you gave me some useful advices or solution.

Upvotes: 2

Views: 511

Answers (1)

Sergiu Indrie
Sergiu Indrie

Reputation: 568

By using the GetUserConfiguration EWS request you can obtain some of the BookInPolicy information.

E.g. by sending the following request for a meeting room's calendar

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010_SP2"/>
  </soap:Header>
  <soap:Body>
    <m:GetUserConfiguration>
      <m:UserConfigurationName Name="Calendar">
        <t:DistinguishedFolderId Id="calendar">
          <t:Mailbox>
            <t:EmailAddress>[email protected]</t:EmailAddress>
          </t:Mailbox>
        </t:DistinguishedFolderId>
      </m:UserConfigurationName>
      <m:UserConfigurationProperties>All</m:UserConfigurationProperties>
    </m:GetUserConfiguration>
  </soap:Body>
</soap:Envelope>

you will obtain a dictionary of information containing (among others) the following two fields

<t:DictionaryEntry>
  <t:DictionaryKey>
    <t:Type>String</t:Type>
    <t:Value>AllBookInPolicy</t:Value>
  </t:DictionaryKey>
  <t:DictionaryValue>
    <t:Type>Boolean</t:Type>
    <t:Value>false</t:Value>
  </t:DictionaryValue>
</t:DictionaryEntry>
<t:DictionaryEntry>
  <t:DictionaryKey>
    <t:Type>String</t:Type>
    <t:Value>BookInPolicy</t:Value>
  </t:DictionaryKey>
  <t:DictionaryValue>
    <t:Type>StringArray</t:Type>
    <t:Value>75480a35-de48-46ad-8378-7c66137de736</t:Value>
    <t:Value>498e21e9-1d88-4254-bea0-8d976c3e451d</t:Value>
    <t:Value>08ffb1dd-64b8-438f-a924-ac3782975abf</t:Value>
  </t:DictionaryValue>
</t:DictionaryEntry>

The downside is that I don't know how to query the IDs received for BookInPolicy.

You can obtain some permission information by using a GetFolder request

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010_SP2"/>
  </soap:Header>
  <soap:Body>
    <m:GetFolder>
      <m:FolderShape>
        <t:BaseShape>AllProperties</t:BaseShape>
      </m:FolderShape>
      <m:FolderIds>
        <t:DistinguishedFolderId Id="calendar">
          <t:Mailbox>
            <t:EmailAddress>[email protected]</t:EmailAddress>
          </t:Mailbox>
        </t:DistinguishedFolderId>
      </m:FolderIds>
    </m:GetFolder>
  </soap:Body>
</soap:Envelope>

and reviewing the returned permission set but I didn't find any way to connect the permission information to the BookInPolicy IDs. (sample permission below)

<t:CalendarPermission>
  <t:UserId>
    <t:SID>S-1-5-21-799214634-780288877-1039276024-11759</t:SID>
    <t:PrimarySmtpAddress>[email protected]</t:PrimarySmtpAddress>
    <t:DisplayName>group</t:DisplayName>
  </t:UserId>
  <t:CanCreateItems>false</t:CanCreateItems>
  <t:CanCreateSubFolders>false</t:CanCreateSubFolders>
  <t:IsFolderOwner>false</t:IsFolderOwner>
  <t:IsFolderVisible>true</t:IsFolderVisible>
  <t:IsFolderContact>false</t:IsFolderContact>
  <t:EditItems>None</t:EditItems>
  <t:DeleteItems>None</t:DeleteItems>
  <t:ReadItems>FullDetails</t:ReadItems>
  <t:CalendarPermissionLevel>Reviewer</t:CalendarPermissionLevel>
</t:CalendarPermission>

Upvotes: 2

Related Questions