I would like to obtain a recurrence series master ID knowing one occurrence item in that series using EWS Managed API.
I could not find any relevant documentation on this subject.
I only found how to do this with the C# framework Appointment.BindToRecurringMaster method by reading the documentation at the following links
What I want is the EWS Managed API equivalent of the Appointment.BindToRecurringMaster method.
I know I can obtain the Recurrence Master object by using FindItem. But I see no connection from a random occurrence to the Recurrence Master object, so I do not know how to interrogate using FindItem in order to get the Recurrence Master object.
Edit: Clarification
BindToRecurringMaster is a C# class. I do not work with C#. My communication to EWS is done using the SOAP requests. That HTTP API in my understanding is the EWS Managed API. The C# class is part of a framework that calls the API.
So what would help me is the SOAP request equivalence to BindToRecurringMaster. In the documentation they mention that I can use FindItem SOAP request to obtain the Recurring Master object and I successfully did that by calling FindItem with the start time and end time filters of the Recurring Master meeting.
But that does not solve my problem because in the application I only know an occurrence of the recurrent series. And by investigating the occurrence object I see no connection to the Recurring Master. The start time and end time of the Recurring Master are not specified and I do not see any other useful information to solve the problem.
My only heuristic solution, witch I do not like, is to call FindItem with the start time equal to the creation time of the occurrence and the end time equal to the occurrence end time since most probably the Recurring Master is between the two. But even this is not true in 100% of the cases.
If there is an BindToRecurringMaster SOAP request, I could not find any documentation on it. And in that case a link to that documentation would be perfect.
Edit: SOAP Examples
FindItem response with the occurrence object. I removed information that was certainly not important to the problem.
<t:CalendarItem>
<t:ItemId Id="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g1CXRKAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS+YDWucgUuAaZAl+AB8ugAAAAABDQAAnS+YDWucgUuAaZAl+AB8ugAA9PgDXAAAEA==" ChangeKey="DwAAABYAAACdL5gNa5yBS4BpkCX4AHy6AAD2t08v"/>
<t:ParentFolderId Id="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgAuAAAAAAAX3ip3BbvRS71FQ5ezQnIeAQCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAAA=" ChangeKey="AQAAAA=="/>
<t:ItemClass>IPM.Appointment.Occurrence</t:ItemClass>
<t:LastModifiedTime>2018-08-30T05:35:49Z</t:LastModifiedTime>
<t:WebClientReadFormQueryString>https://outlook.office365.com/owa/?ItemID=AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g1CXRKAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS%2BYDWucgUuAaZAl%2BAB8ugAAAAABDQAAnS%2BYDWucgUuAaZAl%2BAB8ugAA9PgDXAAAEA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem</t:WebClientReadFormQueryString>
<t:ConversationId Id="AAQkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgAQAAgPXhhxcbFKo43FovJ4qw8="/>
<t:UID>040000008200E00074C5B7101A82E008000000001F98A565FA3DD4010000000000000000100000002D5A6D87AF17C34A9ED87D01759B021B</t:UID>
<t:RecurrenceId>2018-08-29T18:30:00Z</t:RecurrenceId>
<t:DateTimeStamp>2018-08-28T09:26:45Z</t:DateTimeStamp>
<t:Start>2018-08-29T18:30:00Z</t:Start>
<t:End>2018-08-29T19:30:00Z</t:End>
<t:IsRecurring>true</t:IsRecurring>
<t:CalendarItemType>Occurrence</t:CalendarItemType>
</t:CalendarItem>
From the above information I want to find the itemId of the Recurring Master.
Witch in my case is AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgBGAAAAAAAX3ip3BbvRS71FQ5ezQnIeBwCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAACdL5gNa5yBS4BpkCX4AHy6AAD0+ANcAAA=
.
I found what I was missing.
I am supposed to call GetItem using the RecurringMasterItemId element. Something like
<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</ItemShape>
<ItemIds>
<t:RecurringMasterItemId OccurrenceId="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g4Lh3xAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS+YDWucgUuAaZAl+AB8ugAAAAABDQAAnS+YDWucgUuAaZAl+AB8ugAA9PgDXAAAEA==" />
</ItemIds>
</GetItem>
And this is the documentation I was looking for