この質問がウェブ上で何度か見られましたが、答えが見つかりません。
マネージド EWS 2.0 を使用して予定 (会議) を作成すると、招待メールに時間とタイム ゾーンが正しく表示されます。ミーティングを更新すると、新しい招待メールの時刻が UTC タイム ゾーンで表示されます。これは UTC の正しい時刻ですが、太平洋で表示されるはずです。
サービス接続を作成するときにゾーンを設定しようとしましたが、これにより、最初の招待でもタイム ゾーンが UTC として表示され、更新もすべて表示されます。
StartTimeZone および EndTimeZone プロパティを設定しようとしましたが、変更のために予定をバインドするときに、これらのプロパティをプロパティ セットに含めました。
招待状を送信するときに Exchange が時刻をフォーマットする方法を制御する別のプロパティはどこかにありますか? 更新の実行方法を示すコードを次に示します。
Dim EWS As ExchangeService = GetEWSConnection(UserEmailAddress)
Dim meeting As Appointment = Appointment.Bind(EWS, New ItemId(CalendarEvent.ItemKey), New PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.ReminderDueBy, AppointmentSchema.StartTimeZone, AppointmentSchema.EndTimeZone, AppointmentSchema.TimeZone, AppointmentSchema.Subject, AppointmentSchema.Location, AppointmentSchema.Body))
Dim timeZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(LocalTimeZoneID)
With meeting
.Subject = CalendarEvent.Subject
.Location = CalendarEvent.Location
.Body = CalendarEvent.Body
.Start = CalendarEvent.StartTime
.End = CalendarEvent.EndTime
.StartTimeZone = timeZone
.EndTimeZone = timeZone
' snip (removed attendee add/remove)
.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToChangedAndSaveCopy)
End With