繰り返し機能のiCalに関して

例えば毎月12月繰り返しのス”m12″というスケジュールを登録すると次のようなicsファイルが出力される。

BEGIN:VEVENT
DTSTAMP:20151005T061820Z
DTSTART:20150712T160000
DTEND:20150712T170000
SUMMARY:m12
UID:20151005T061821Z-9451@fe80:0:0:0:b875:86ff:fe8b:3908%awdl0
RRULE:FREQ=MONTHLY;UNTIL=20160105T000000;BYMONTH=1,2,3,4,5,6,7,8,9,10,11,12;BYMONTHDAY=12
END:VEVENT
BEGIN:VEVENT

ここでDTSTART, DTENDはScheduleiCalScreen.javaのdStart, dEndに対応していてこの部分がスケジュールの本体?に対応している。
その後RRULEで規則を決める。FREQで繰り返し頻度、UNTILでその予定をどこまで表示するのかなどである。 DTSTART, DTENDが表示期間指定を示しているのかと勘違いしていたことや、DTSTARTなどがコードの何に対応しているかがわからなかったことで結構時間を使ってしまった。またUNTILで指定した日付以降のDTSTART, DTENDを指定しても予定が入ってしまうことなどにも悩まされた。