none
Meeting request message after appointment is updated shows UTC time RRS feed

  • Question

  • I'm using Exchange 2010 EWS Managed API to create and update appointments. When appointment is created, in the meeting request, it shows:

    When: Wednesday, March 16, 2011 4:30 PM-4:45 PM. (GMT-05:00) Eastern Time (US & Canada)

    Then I update the meeting, not necessarily the meeting time, but when I do an update with the following code:

    Appointment

     

    meeting = Appointment.Bind(service, new ItemId(ItemID));

    meeting.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendOnlyToAll);

    When I open the meeting request in Outlook 2010, I get this:

    When: Wednesday, March 16, 2011 8:30 PM-8:45 PM. UTC

    Same exact meeting, if I open the request in Outlook 2007, this line does not show up at all, which is what I want.

    I have other parts of the meeting request that do reference the time in local (Eastern) time zone. But this part showing in UTC is really confusing to the attendees. I don't think I can control the "When" part of the message. I've tried setting starttimezone, specifying time zone when connecting to Exchange service, but nothing made any difference. Is there anyway I can either make an updated meeting show the same text for "When" as the initial request (local time referencing GMT), or at least suppress the line that shows UTC time?

    Thank you in advance for any input.

    Wednesday, March 16, 2011 9:14 PM

All replies

  • I have the same problem.  I want to control the text of the "when" part of the meeting request. 

    Did you ever figure this out?

    Sunday, April 14, 2013 8:42 AM
  • There is bug in the EWS Managed API where it doesn't send the TimeZone information in the SOAP request for certain operations. It affects Updates, Replys Forwards you can work around this by using the OnSerializeCustomSoapHeaders http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeservicebase.onserializecustomsoapheaders(v=exchg.80).aspx to add the TimeZoneContext header manually eg

                service.OnSerializeCustomSoapHeaders += new Microsoft.Exchange.WebServices.Data.CustomXmlSerializationDelegate(service_OnSerializeCustomSoapHeaders);
                apt.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToAllAndSaveCopy);
                service.OnSerializeCustomSoapHeaders -= new Microsoft.Exchange.WebServices.Data.CustomXmlSerializationDelegate(service_OnSerializeCustomSoapHeaders);
    
            static void service_OnSerializeCustomSoapHeaders(XmlWriter writer) {
                
                writer.WriteRaw(Environment.NewLine + "    <t:TimeZoneContext><t:TimeZoneDefinition Id=\"" + TimeZone.CurrentTimeZone.StandardName + "\"/></t:TimeZoneContext>" + Environment.NewLine);
            }
    As other operations do send this header (eg when you create and appointment the TimeZone information is sent) I wouldn't recommend leaving it permanently wired.

    Cheers
    Glen
    Thursday, September 12, 2013 6:23 AM
  • It really worked better and was able to have right UTC time zone set as we mention in Soap headers.

    But, i would like to know, if we can avoid the "when: " information in invite body at all? This is due to situation, i have where in people in the invite could be from various time zones and mentioning one time zone in header would be equivalent to having UTC time zone to all other who are in different time zone than mentioned one.

    Thanks in advance,

    Vamsi Praveen K

    Monday, March 16, 2015 9:42 PM
  • If you talking about "downlevel text" https://msdn.microsoft.com/en-us/library/ee157367%28v=exchg.80%29.aspx in Exchange 2010 then AFAIK there is no way of disabling this. In 2013 it doesn't seem to get sent

    Cheers
    Glen

    Tuesday, March 17, 2015 3:03 AM
  • Yes Glen. I am talking about downlevel text. And thank you for guiding me with the link.

    With the timezone information specified in SOAP headers really changed the start and end datetime specified in UTC to the timezone specified at downlevel text.

    Case: Invite sent from user in IST to participant in IST. Interview slot between Apr 01 5:00 PM to 6:00PM 

    Initial Invite:

             When: Wednesday, April 01, 2015 11:30 AM - 12:30 PM. UTC

    After Timezone (IST) specified in SOAP Header,

             When: Wednesday, April 01, 2015 5:00 PM - 6:00PM. (UTC+5:30) Chennai, Kolkata, Mumbai, New Delhi

    Questions:

    1. But now the challenge is when organizer is at IST and participants belong to EST and IST. so i wanted to have the downlevel text to show right timezone information as per the recipient timezone (EST or IST). 

    2. And another question from the link you shared.. It stated that the invite message body would be appended with downlevel text, if the format is not understood. Would it mean, EWS will send in such a format that the Outlook cannot understand?

    Thanks in advance and glad for your patience.

    Monday, March 23, 2015 2:37 PM
  • 1.  Are the attendees in the same Exchange Organization or are they external attendees ? As far as I know it not customizable in anyway, optimally you would be better if the down-level text doesn't get sent like Exchange 2013.

    2. Outlook will ignore the downlevel text and use the calendar invite information instead its only clients that can't read that information you might want to read http://www.msoutlook.info/question/600 which explains the Outlook side of this.

    Cheers
    Glen

    Tuesday, March 24, 2015 3:11 AM