I am using the following code to update my recurring event.
ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
TimeZone timeZone = TimeZone.getDefault();
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.setTime(myEvent.START_DATE);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.setTime(myEvent.END_DATE);
endMillis = endTime.getTimeInMillis();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
values.put(CalendarContract.Events.TITLE,myEvent.TITLE);
values.put(CalendarContract.Events.AVAILABILITY,myEvent.AVAILABILITY);
values.put(CalendarContract.Events.ACCESS_LEVEL,myEvent.ACCESS_LEVEL);
values.put(CalendarContract.Events.EVENT_LOCATION,myEvent.EVENT_LOCATION);
values.put(CalendarContract.Events.ALL_DAY,myEvent.ALL_DAY);
values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS,myEvent.GUESTS_CAN_INVITE_OTHERS);
values.put(CalendarContract.Events.GUESTS_CAN_MODIFY,myEvent.GUESTS_CAN_MODIFY);
values.put(CalendarContract.Events.GUESTS_CAN_SEE_GUESTS,myEvent.GUESTS_CAN_SEE_GUESTS);
values.put(CalendarContract.Events.DESCRIPTION, myEvent.Note);
values.put(CalendarContract.Events.CALENDAR_ID, myEvent.ID);
if(myEvent.RRULE != null && myEvent.RRULE.length()>0)
{
values.put(CalendarContract.Events.RRULE,myEvent.RRULE);
long duration = Math.max(0,endMillis- startMillis);
if(duration > 0)
values.put(CalendarContract.Events.DURATION, endMillis);
if(myEvent.EXDATE != null && myEvent.EXDATE.length()>0)
{
values.put(CalendarContract.Events.EXDATE,myEvent.EXDATE);
}
}
else
{
values.put(CalendarContract.Events.DTEND, endMillis);
}
Uri updateUri = ContentUris.withAppendedId(Events.CONTENT_URI, myEvent.EVENT_ID);
rowUpdated= cr.update(updateUri, values, null, null);
I added an exception date. After that, the event RRULE becomes null when I read in the event next time. All instances of the event is gone. it is very hard to program recurring events because there is not adequate documents to find info. Please help!