ビジネスを Kerio Connect から MS Exchange 2010 に移行しています (理由は聞かないでください)。そこで、CalDAV によって Kerio からイベントとタスクを取得し、EWS (Exchange Web Services) を使用して Exchange でそれらを再作成するコードをいくつか書きました。
オーガナイザーと参加者の間のリンクが壊れているという 1 つのことを除いて、すべて正常に機能します。これは、参加者が会議を編集できることを意味しますが、これは彼が行うべきではなく、主催者が会議時間を変更した場合、参加者は更新を取得しません。
イベントを作成するときに Outlook 2011 と iCal が何をするかを確認しました。同じ手順を実行しますが、1 つの重要な点を除いて、Exchange で再作成するイベントは、参加者が既に招待を受け入れたイベントであり、招待を送信したくないということです。移行を開始するとき。
これは、EWS でイベントを作成するためのリクエストです。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<ns2:MailboxCulture xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ns3="http://schemas.microsoft.com/exchange/services/2006/messages">en-US</ns2:MailboxCulture>
<ns2:RequestServerVersion xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ns3="http://schemas.microsoft.com/exchange/services/2006/messages" Version="Exchange2010_SP1" />
<ns2:TimeZoneContext xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ns3="http://schemas.microsoft.com/exchange/services/2006/messages">
<ns2:TimeZoneDefinition Id="Eastern Standard Time" />
</ns2:TimeZoneContext>
</S:Header>
<S:Body>
<ns3:CreateItem xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ns3="http://schemas.microsoft.com/exchange/services/2006/messages" SendMeetingInvitations="SendToAllAndSaveCopy">
<ns3:SavedItemFolderId>
<ns2:FolderId Id="AAMkADZkZDFkMjcwLTM5YWItNGRiYy05YzA0LWZhZmM3MjBkNDM1ZgAuAAAAAAAQdcJHRof+QosJDrhZyY00AQCw+XICdccgRJNrvNFaYvpgAAAAevvIAAA=" />
</ns3:SavedItemFolderId>
<ns3:Items>
<ns2:CalendarItem>
<ns2:Subject>Test prob -> probert</ns2:Subject>
<ns2:Body BodyType="Text">
</ns2:Body>
<ns2:Importance>Normal</ns2:Importance>
<ns2:UID>3CB0FF7D-63F0-47A0-80B6-3B3131E7BCF4</ns2:UID>
<ns2:Start>2012-12-21T17:00:00</ns2:Start>
<ns2:End>2012-12-21T18:30:00</ns2:End>
<ns2:IsAllDayEvent>false</ns2:IsAllDayEvent>
<ns2:Location>salle3219_6</ns2:Location>
<ns2:RequiredAttendees>
<ns2:Attendee>
<ns2:Mailbox>
<ns2:Name>Pascal Robert</ns2:Name>
<ns2:EmailAddress>probert@mydomain.com</ns2:EmailAddress>
</ns2:Mailbox>
<ns2:ResponseType>Accept</ns2:ResponseType>
</ns2:Attendee>
</ns2:RequiredAttendees>
<ns2:OptionalAttendees>
<ns2:Attendee>
<ns2:Mailbox>
<ns2:Name>salle3219_6</ns2:Name>
<ns2:EmailAddress>salle3219_6@mydomain.com</ns2:EmailAddress>
</ns2:Mailbox>
<ns2:ResponseType>Accept</ns2:ResponseType>
</ns2:Attendee>
</ns2:OptionalAttendees>
</ns2:CalendarItem>
</ns3:Items>
</ns3:CreateItem>
</S:Body>