#exchangewebservices #outlook-restapi
Вопрос:
Рассмотрим следующий XML CalendarItem
-ответ:
<t:CalendarItem>
<t:ItemId Id="XXXXXXXXX"></t:ItemId>
<t:Subject>Event Title</t:Subject>
<t:Sensitivity>Normal</t:Sensitivity>
<t:DateTimeCreated>2021-09-23T01:03:43Z</t:DateTimeCreated>
<t:ReminderIsSet>false</t:ReminderIsSet>
<t:ReminderNextTime>2021-09-23T01:00:00Z</t:ReminderNextTime>
<t:ReminderMinutesBeforeStart>0</t:ReminderMinutesBeforeStart>
<t:EffectiveRights>
<t:CreateAssociated>false</t:CreateAssociated>
<t:CreateContents>false</t:CreateContents>
<t:CreateHierarchy>false</t:CreateHierarchy>
<t:Delete>true</t:Delete>
<t:Modify>true</t:Modify>
<t:Read>true</t:Read>
<t:ViewPrivateItems>true</t:ViewPrivateItems>
</t:EffectiveRights>
<t:LastModifiedName>User Name</t:LastModifiedName>
<t:LastModifiedTime>2021-09-24T11:34:13Z</t:LastModifiedTime>
<t:Start>2021-09-23T01:00:00Z</t:Start>
<t:End>2021-09-23T02:00:00Z</t:End>
<t:IsAllDayEvent>false</t:IsAllDayEvent>
<t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
<t:Location>Virtual Conference Personal Room</t:Location>
<t:IsCancelled>false</t:IsCancelled>
<t:MyResponseType>Accept</t:MyResponseType>
<t:Organizer>
<t:Mailbox>
<t:Name>Some Name</t:Name>
<t:EmailAddress>some@some.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>OneOff</t:MailboxType>
</t:Mailbox>
</t:Organizer>
<t:RequiredAttendees>
<t:Attendee>
<t:Mailbox>
<t:Name>Some Name</t:Name>
<t:EmailAddress>some@some.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>OneOff</t:MailboxType>
</t:Mailbox>
<t:ResponseType>Unknown</t:ResponseType>
</t:Attendee>
</t:RequiredAttendees>
<t:Recurrence>
<t:WeeklyRecurrence>
<t:Interval>1</t:Interval>
<t:DaysOfWeek>Thursday</t:DaysOfWeek>
<t:FirstDayOfWeek>Monday</t:FirstDayOfWeek>
</t:WeeklyRecurrence>
<t:NoEndRecurrence>
<t:StartDate>2021-09-23Z</t:StartDate>
</t:NoEndRecurrence>
</t:Recurrence>
<t:StartTimeZoneId>tzone://Microsoft/Custom</t:StartTimeZoneId>
<t:EndTimeZoneId>tzone://Microsoft/Custom</t:EndTimeZoneId>
</t:CalendarItem>
Обратите внимание, как там чего-то не хватает StartTimeZoneId
и EndTimeZoneId
как там написано tzone://Microsoft/Custom
. Как извлечь информацию о часовом поясе? Пользователь создал это событие в Outlook, и единственная соответствующая информация, которую я нашел, находится здесь:
https://docs.microsoft.com/en-us/graph/api/resources/event?view=graph-rest-1.0
В котором говорится, что это означает, что пользователь установил «устаревший часовой пояс» в Outlook. Тем не менее, как мы можем получить устаревшую информацию о часовом поясе, не спрашивая пользователя(ов) об изменении версии / настроек Outlook, поскольку это не находится под их контролем.
Комментарии:
1. Если вы используете редактор Mapi, такой как OutlookSpy или MFCMapi, и посмотрите на следующее свойство docs.microsoft.com/en-us/office/client-developer/outlook/mapi/… это должно содержать определение часового пояса. Возможно, вам придется сделать что-то вроде support.microsoft.com/en-us/topic/… чтобы обеспечить его фиксацию в будущем