How to call Exchange Web Services GetUserAvailabilityRequest when the current time zone does not include daylight saving time?

I am trying to call GetUserAvailabilityRequest from South African Standard Time, which does not include daylight saving, however, the TimeZone element requires StandardTime and DaylightTime subelements that require details about moving to or from DST. Omitting these elements results in an error, as well as sending arbitrary data. Does anyone know the right way to make this call?

More details are based on comments by @ jan-doggen. In this example, the user is based in standard time South Africa

(with an arbitrary change date ST and DST January 1)

 <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <soap:Body> <GetUserAvailabilityRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <t:TimeZone xmlns="http://schemas.microsoft.com/exchange/services/2006/types"> <Bias>-120</Bias> <StandardTime> <Bias>0</Bias> <Time>00:00:00</Time> <DayOrder>1</DayOrder> <Month>1</Month> <DayOfWeek>Wednesday</DayOfWeek> </StandardTime> <DaylightTime> <Bias>0</Bias> <Time>00:00:00</Time> <DayOrder>1</DayOrder> <Month>1</Month> <DayOfWeek>Wednesday</DayOfWeek> </DaylightTime> </t:TimeZone> <MailboxDataArray> <t:MailboxData> <t:Email> <t:Address> test1@domain.com </t:Address> </t:Email> <t:AttendeeType>Organizer</t:AttendeeType> <t:ExcludeConflicts>false</t:ExcludeConflicts> </t:MailboxData> <t:MailboxData> <t:Email> <t:Address> test2@domain.com </t:Address> </t:Email> <t:AttendeeType>Required</t:AttendeeType> <t:ExcludeConflicts>false</t:ExcludeConflicts> </t:MailboxData> </MailboxDataArray> <t:FreeBusyViewOptions> <t:TimeWindow> <t:StartTime>2013-05-13T00:55:11</t:StartTime> <t:EndTime>2013-05-27T00:55:11</t:EndTime> </t:TimeWindow> <t:MergedFreeBusyIntervalInMinutes>15</t:MergedFreeBusyIntervalInMinutes> <t:RequestedView>FreeBusyMerged</t:RequestedView> </t:FreeBusyViewOptions> </GetUserAvailabilityRequest> </soap:Body> 

Answer:

 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <s:Fault> <faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:-2146233088</faultcode> <faultstring xml:lang="en-US">The specified time zone isn't valid.</faultstring> <detail> <m:ErrorCode xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">-2146233088</m:ErrorCode> </detail> </s:Fault> </s:Body> 

+6
source share
2 answers

All examples on MSDN show that <Month> has different meanings for standard and daytime. Use different month values, but the same <Bias> value for day and standard time zones.

+3
source

Thanks to the comment by @WilliamPrice, I was able to solve this. The answer was to set the month "Daylight" to a different value than the standard time, with an arbitrary setting of these values:

  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <soap:Body> <GetUserAvailabilityRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <t:TimeZone xmlns="http://schemas.microsoft.com/exchange/services/2006/types"> <Bias>-120</Bias> <StandardTime> <Bias>0</Bias> <Time>00:00:00</Time> <DayOrder>1</DayOrder> <Month>1</Month> <DayOfWeek>Wednesday</DayOfWeek> </StandardTime> <DaylightTime> <Bias>0</Bias> <Time>00:00:00</Time> <DayOrder>1</DayOrder> **<Month>2</Month>** <DayOfWeek>Wednesday</DayOfWeek> </DaylightTime> </t:TimeZone> <MailboxDataArray> <t:MailboxData> <t:Email> <t:Address> test1@domain.com </t:Address> </t:Email> <t:AttendeeType>Organizer</t:AttendeeType> <t:ExcludeConflicts>false</t:ExcludeConflicts> </t:MailboxData> <t:MailboxData> <t:Email> <t:Address> test2@domain.com </t:Address> </t:Email> <t:AttendeeType>Required</t:AttendeeType> <t:ExcludeConflicts>false</t:ExcludeConflicts> </t:MailboxData> </MailboxDataArray> <t:FreeBusyViewOptions> <t:TimeWindow> <t:StartTime>2013-05-13T00:55:11</t:StartTime> <t:EndTime>2013-05-27T00:55:11</t:EndTime> </t:TimeWindow> <t:MergedFreeBusyIntervalInMinutes>15</t:MergedFreeBusyIntervalInMinutes> <t:RequestedView>FreeBusyMerged</t:RequestedView> </t:FreeBusyViewOptions> </GetUserAvailabilityRequest> </soap:Body> 
+3
source

Source: https://habr.com/ru/post/944367/


All Articles