トップ «前の日記(2005-04-18) 最新 次の日記(2005-05-08)» 編集

人徳ゼロ日記


2005-05-02

_ OutlookでのiCalendarシンクロナイズ

以前、KO/PIでのiCalendarシンクロナイズについて調べましたが、今度はもう1つのシンクロナイズ対象であるOutlookで調べてみました。Outlookなのでシンクロナイズしやすい動作をするかどうか、疑ってかかっています。

  • iCalendarにexportするたびに、新規のUIDがつけられてしまわないか?
    →○Outlook上の1つのイベント項目を何度かiCalendarにexportしても、exportごとに別のUIDになることはなく、単一のUIDのままである。
  • Outlookで更新するとSEQUENCE、LAST-MODIFIED、DTSTAMPは変化するのか?
    →○Outlookで新規作成したイベント項目の場合、DTSTAMPが変化する。
     ×iCalendarから登録したイベント項目の場合、どの項目も変化しない。
     ×SEQUENCEは増えない。LAST-MODIFIEDは存在しない。
  • 1度iCalendarから登録したイベント項目と同じUIDのイベント項目を再度iCalendarから登録するとどうなるか?
    →×同じ内容のアイテムが重複して登録してしまう。再度exportしてみると、UIDはどちらも同じ値となっている。
  • iCalendarからイベント項目を登録した場合に、登録した項目をOutlookから取り出したらUIDが保存されているか?
    →○UIDは保存する。

UIDが保存されるので、イベント項目の特定はできそうです。同じUIDのイベント項目が存在できるのは、UID(OLE2でのプロパティはEntryIDだと思う)とは別のIDが存在しているのでしょうか?

何を基準に更新したかどうかを判断するかが問題です。iCalendarから登録した項目では、Outlook上で変更を加えても変更したことがどの項目からも分からないので、変更反映の方向が判断つきません。常に一方向シンクロナイズか、毎回コンフリクトにするか、という方法しかないかもしれません。

追記: OLE2でLast-Modifiedをみると、iCalendarから登録したイベント項目でもOutlookで操作した時間が反映されていました。iCalendarへエクスポートする場合との違いが良く分かりませんが、変更の検出は出来ることがわかりました。)