はじめに
秘書君にある「複雑な周期」はiCalender形式(RFC2455で定義)の周期指定方法に準拠しています。
基本
単純に周期的な予定
まず周期の単位を指定します。
例) FREQ=MONTHLY
秘書君は以下に対応しています
日単位 DAILY
週単位 WEEKLY
月単位 MONTHLY
年単位 YEARLY
次に周期の長さを指定します。
INTERVAL=2
数字の上限は特に無いです。
# 常識外れに大きいのはエラーになります
これぐらいが基本です。
6週間に1回なら
FREQ=WEEKLY;INTERVAL=6
です。
少し複雑な指定
曜日や日、月を指定できます。
曜日指定 BYDAY
日月火水木金土曜がそれぞれ SU, MO, TU, WE, TH, FR, SA となります。
日にち指定 BYMONTHDAY
普通の日付です。
FREQ=MONTHLY;BYMONTHDAY=15
毎月15日です。
年の日指定 BYYEARDAY
1月1日が1,2月1日が32です
FREQ=YEARLY;INTERVAL=2;BYYEARDAY=15
隔年の1月15日です。
BYWEEKNO
年明けてからの週番号です。
余り日本じゃ使わないですね。
BYMONTH
月を指定します。
FREQ=YEARLY;INTERVAL=2;BYMONTH=2,4,6,9,11
で小の月です。
…これバグってて動かないですね…あれー?
BYSETPOS
範囲内で条件を満たすいくつ目か、を指定します。
-1だと最後です。
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-3
こう書くと「毎月の平日の最後から3日目」
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-3
これで「毎月の平日の最初から3日目」です。
WKST
週を日曜からはじめるか月曜からはじめるかです。
週番号の指定にしか使わないので日本人には余り意味
ありません。
どうもBYMONTHあたりがバクってます…直します。
参考例
隔月の第2土曜日
FREQ=MONTHLY;INTERVAL=2;BYDAY=2SA
ドキュメント
RFCの原文はこちら(英語)
http://www.ietf.org/rfc/rfc2445.txt