Mar 22, 2007

Cybozu2iCal 0.12公開

サイボウズオフィス6のカレンダーアイテムを取得して、iCalendar形式に変換するスクリプト、Cybozu2iCalを久々に更新しました。

Cybozu2ICal - ogawa - Google Code

0.10でサイボウズカレンダーの反復イベントに対応したつもりだったのですが、どうも不十分だったようでいくつかフィードバックをいただきました。遅くなりましたが、0.12ではそれらの対策をしたつもりなのでご確認いただければと思います。

RFC2445: Internet Calendaring and Scheduling Core Object Specification (iCalendar)を読むと、反復条件(RRULE)では、終了日時UNTILは「日付」または「UTC時刻」で指定することになっています。0.11までは、すべての反復イベントに対してUNTILに「日付」のみを指定していましたが、0.12ではなるべく標準に即すべく、時刻指定のある反復イベントのUNTILはUTC時刻で指定し、時刻指定のない反復イベントのUNTILは日付で指定するようにしました。

また、この修正をしてもGoogle Calendarには時刻指定のない反復イベントの終了日時が一日早まってしまうバグがある様子です。私の勘違いなのかもしれませんが。

2007年3月21日から25日までの終日イベントは以下のように指定できるはずです。

DTSTART;VALUE=DATE:20070321
DTEND;VALUE=DATE:20070322
RRULE:FREQ=DAILY;UNTIL=20070325

しかし、Google Calendarでは24日までのイベントとして認識されていまいます。なんとなく、UNTILの日付(20070325)を時刻(20070325T000000)として解釈しているような気がします。

ところが、こんな具合に、

DTSTART;VALUE=DATE:20070321
DTEND;VALUE=DATE:20070322
RRULE:FREQ=DAILY;UNTIL=20070325;WKST=SU

RRULEにWKST=SUオプション(週の開始を「日曜」とするオプション)を指定すると、Google Calendarの問題が回避できることを発見したので、cybozu2ical 0.12はこの回避策を採用しています。

関連:
Ogawa::Buzz: Cybozu2iCal 0.10公開
Ogawa::Buzz: Cybozu Office 6のカレンダーを Google Calendarで表示する

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com