ContentResolver cr = ctx.getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, dtstart);
values.put(CalendarContract.Events.TITLE, title);
values.put(CalendarContract.Events.DESCRIPTION, comment);
TimeZone timeZone = TimeZone.getDefault();
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
// default calendar
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.RRULE, "FREQ=DAILY;UNTIL="
+ dtUntill);
// for one hour
values.put(CalendarContract.Events.DURATION, "+P1H");
values.put(CalendarContract.Events.HAS_ALARM, 1);
// insert event to calendar
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
ここでdtuntilは
SimpleDateFormat yyyymmdd = new SimpleDateFormat("yyyymmdd");
Calendar dt = Calendar.getInstance();
// where untilDate is a date instance of your choice,for example 30/01/2012
dt.setTime(untilDate);
// if you want the event until 30/01/2012 we add one day from our day
// because UNTIL in RRule sets events Before the last day want for event
dt.add(Calendar.DATE, 1);
String dtUntill = yyyymmdd.format(dt.getTime());
// Uri
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
// get the event ID that is the last element in the Uri
long eventID = Long.parseLong(uri.getLastPathSegment());
// add 10 minute reminder for the event
ContentValues reminders = new ContentValues();
reminders.put(Reminders.EVENT_ID, eventID);
reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT);
reminders.put(Reminders.MINUTES, 10);
Uri uri = cr.insert(Reminders.CONTENT_URI, reminders);
参照:Recurrence Rule