2010年11月25日木曜日

[google calendar]繰返し登録方法


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 件のコメント:

コメントを投稿