microsoft-graph-apioffice365exchange-servermicrosoft-graph-calendarformat-conversion

Converting restId format type to old Outlook HexEntryId type


Back in the days when we did a calendar synchronisatie via Outlook this gave us IDs of the form:

00000000ABC72AACB341FF4F9886BAAC125E772807007591CF0335B23144ADC7FCD71BA6E2FC00000000010D00007591CF0335B23144ADC7FCD71BA6E2FC00009957CF160000

We later upgraded the code to use Exchange Web Services, and for a smooth transistion we kept the old IDs in custom event properties, and therefore had to convert EWS EntryIds like this:

<soapenv:Body>
  <mes:ConvertId DestinationFormat="HexEntryId">
    <mes:SourceIds>
      <typ:AlternateId Format="EwsId" Id="AAMkADI2ZGIwY2FlLTA1NDQtNGFhYi1hNDJmLWEyMGJhZWU5NmM2YgBGAAAAAACrxyqss0H/T5iGuqwSXncoBwB1kc8DNbIxRK3H/NcbpuL8AAAAAAENAAB1kc8DNbIxRK3H/NcbpuL8AAJ2Kv4fAAA=" Mailbox="timetelldev@timetell.nl"/>
    </mes:SourceIds>
  </mes:ConvertId>
</soapenv:Body>

Response:

 <ResponseMessages>
   <ConvertIdResponseMessage ResponseClass="Success">
     <ResponseCode>NoError</ResponseCode>
     <AlternateId type="t:AlternateIdType" Format="HexEntryId" Id="00000000ABC72AACB341FF4F9886BAAC125E772807007591CF0335B23144ADC7FCD71BA6E2FC00000000010D00007591CF0335B23144ADC7FCD71BA6E2FC0002762AFE1F0000" Mailbox="timetelldev@timetell.nl"/>
   </ConvertIdResponseMessage>
 </ResponseMessages>

We are now moving to MS Graph and I need to be able to convert the new restId format to the old Outlook ones using translateExchangeIds (according to Exchange Web Services (EWS) to Microsoft Graph API mappings).
But there is no such thing as the HexEntryId format type. I tried several combinations with no luck.

(How) can I convert the MS Graph REST IDs to these HexEntryId?


Solution

  • I think that you need to first convert restId to entryId by calling

    POST /me/translateExchangeIds
    
    {
        "inputIds": [
            "{restId}"
        ],
        "sourceIdType": "restId",
        "targetIdType": "entryId"
    }
    

    It will return targetId in form of entryId.

    Now convert entryId to hexEntryId

    The final hex string should be your hexEntryId