none
[EWS-XML] Set x-headers on CalendarItems RRS feed

  • Question

  • I would like to be able to set x-headers on CalendarItems, and the associated meeting requests & items in other peoples calendars that get generated by the same EWS call. The following will set the extended property on the original item (e.g. in the organizers calendar), but not the other items that get generated. I can set PublicStrings instead of InternetHeaders, but these don't seem to stick with the message after it leaves Exchange. Is there any way to do this within EWS or is it by design that these properties don't get copied over while others do?

    <?xml version="1.0" encoding="utf-8"?>
    <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"
                   xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Header>
            <t:RequestServerVersion Version="Exchange2013" />
        </soap:Header>
        <soap:Body>
            <m:CreateItem SendMeetingInvitations="SendToAllAndSaveCopy">
                <m:Items>
                    <t:CalendarItem>
                        <t:Subject>Test Calendar Item</t:Subject>
                        <t:Body BodyType="Text">Body Text</t:Body>
                        <t:ReminderIsSet>true</t:ReminderIsSet>
                        <t:ReminderMinutesBeforeStart>60</t:ReminderMinutesBeforeStart>
                        <t:ExtendedProperty>
                            <t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders"
                                    PropertyName="x-customheader"
                                    PropertyType="String" />
                            <t:Value>Value Text</t:Value>
                        </t:ExtendedProperty>
                        <t:Start>2014-11-02T14:00:00</t:Start>
                        <t:End>2014-11-02T15:00:00</t:End>
                        <t:RequiredAttendees>
                            <t:Attendee>
                                <t:Mailbox>
                                    <t:EmailAddress>test@example.com</t:EmailAddress>
                                </t:Mailbox>
                            </t:Attendee>
                        </t:RequiredAttendees>
                    </t:CalendarItem>
                </m:Items>
            </m:CreateItem>
        </soap:Body>
    </soap:Envelope>

    Thursday, October 30, 2014 1:02 AM

Answers

  • That won't work because a Meeting Invitation is generated from the Appointment information and the only information that is included is the Subject/Body/Location/Start/End/GlobalId etc. (You can't capture the Meeting request when it gets generated in EWS you could catch it with a Transport Agent on the Server).

    If you need to embed some type of information in the Meeting request you need to put it in those properties or potentially as a separate attachment so when the Meeting updates are generated that information should be included.

    Cheers
    Glen

    • Marked as answer by l_gaud Thursday, December 3, 2015 8:56 PM
    Friday, October 31, 2014 6:54 AM