In my application, I use the CalendarContract API to manage the calendar and events in Google Calendar. I'm having trouble adding multiple events to the same calendar. In general, the problem with this method is that whenever I add a new event to the Google calendar, the old event is replaced with a new one. Here is the code of my method:
public int addEvent(Context context, String color, int calendarId, String name, String location, String description, Date dateBegin, Date dateEnd) {
long startMillisEpoch;
long endMillisEpoch;
Calendar beginTime = Calendar.getInstance();
beginTime.setTime(dateBegin);
startMillisEpoch = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.setTime(dateEnd);
endMillisEpoch = endTime.getTimeInMillis();
int eventColor;
try {
eventColor = Color.parseColor(color);
} catch (Exception e) {
Random random = new Random();
eventColor = MyApp.RANDOM_COLORS[random.nextInt(MyApp.RANDOM_COLORS.length)];
}
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.CALENDAR_ID, calendarId);
values.put(CalendarContract.Events.DTSTART, startMillisEpoch);
values.put(CalendarContract.Events.DTEND, endMillisEpoch);
values.put(CalendarContract.Events.TITLE, name);
values.put(CalendarContract.Events.EVENT_LOCATION, location);
values.put(CalendarContract.Events.DESCRIPTION, description);
values.put(CalendarContract.Events.EVENT_COLOR, eventColor);
values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getDisplayName());
values.put(CalendarContract.Events.ALL_DAY, NON_ALL_DAY);
values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS, 1);
Uri calUri = context.getContentResolver().insert(CalendarContract.Events.CONTENT_URI, values);
if (calUri != null) {
try {
return Integer.parseInt(calUri.getLastPathSegment());
} catch (Exception e) {
return -1;
}
}
return -1;
}
Any ideas to solve this problem? Regards.
source
share