2009年2月25日水曜日

iCal の終日イベント作成時のバグ

AppleScript から iCal の終日イベントを作成した時に、時間帯の扱いについてバグがある模様。iCal の環境設定の「時間帯サポートを有効にする」を変更しても、同じ結果となった。

実験環境

  • Mac OS X 10.5.6
  • iCal 3.0.6
  • スクリプトエディタ 2.2.1
  • AppleScript 2.0.1
  • 時間帯 Tokyo - Japan

テストコード

次のようなスクリプトを動かしてみると、(a) だけ昨日のイベントとなる。

tell application "iCal"
  tell calendar "テスト"
    set d to current date
    set hours of d to 8
    set minutes of d to 0
    copy d to d8  -- 今日の 08:00
    set hours of d to 9
    copy d to d9  -- 今日の 09:00
    set hours of d to 10
    copy d to d10  -- 今日の 10:00
  
    -- (a) 本日 8:00 - 9:00 の終日イベントを作る
    make new event at end with properties {summary:"テスト終日 (a)", start date:d8, end date:d9, allday event:true}
    -- (b) 本日 9:00 - 10:00 の終日イベントを作る
    make new event at end with properties {summary:"テスト終日 (b)", start date:d9, end date:d10, allday event:true}
    -- (c) 本日 8:00 - 9:00 の通常イベントを作る
    make new event at end with properties {summary:"テスト通常 (c)", start date:d8, end date:d9, allday event:false}
    -- (d) 本日 9:00 - 10:00 の通常イベントを作る
    make new event at end with properties {summary:"テスト通常 (d)", start date:d9, end date:d10, allday event:false}
  end tell
end tell

実行結果

この通り。多分、バグでしょう。

対策

今後、バグが直る可能性もあるので、対策としては、終日イベントを作るときは、開始時間を正午にしておく、ということでよさそうです…。

iCal 4.0.3 (Build 1388) では修正されていることを確認しました。(2010-09-05 追記)

0 件のコメント:

コメントを投稿