Googleカレンダーでイベントを繰り返し登録する方法を探したところ、
以下の話題がありました。Google calendar API での繰り返しスケジュールの取得
"RRULE:FREQ=WEEKLY;..." といった形式で繰返しが登録できるとのこと。
詳しいフォーマットとしては、色いろあるようで
FREQ=DAILY/WEEKLY/YEARLY (毎日/週ごと)
BYDAY=MON/FRI (曜日指定)
INTERVAL=2 (間隔)
これらを組み合わせて、以下の設定が可能。
隔週月曜日
FREQ=WEEKLY; INTERVAL=2; BYDAY=MON;
毎年最終月曜日
FREQ=YEARLY; BYDAY=-1MON; (-1で最終〜になる)
で、今回は毎年同じ日に登録したい場合は、単純に以下だけ。
FREQ=YEARLY;
で、ここから例えば、何年間だけ同じ日に登録したいときは
どうするのか?
方法は2つあるみたいですが、片方しか試してないので、
とりあえずわかった方を記載しておきます。
■UNTILを使う方法
以下のように記載するとどうやら2015年1月1日まで
繰り返し登録することが可能みたい。
FREQ=YEARLY UNTIL=20150101;
以下が実際に書いたコード
ContentValues values = new ContentValues(); ContentResolver cr = this.getContentResolver(); values.put("calendar_id", calId); values.put("title", title); values.put("allDay", 1); values.put("dtstart", startDay); values.put("dtend", endDay); values.put("rrule", "FREQ=YEARLY;UNTIL=20150101T010000Z"); values.put("duration", "P1D"); cr.insert(events, values);
rruleで、2015年まで毎年登録。
durationは設定しておかないとエラーになってしまいますが、
なぜ必要なのかはまだ不明です…
■COUNTを使う方法
こちらの方法でもいけるのかな?未確認です。
0 件のコメント:
コメントを投稿