I'm using this code to insert an event into calendar in android:
private void insertEvent(int start, int end, String location, String comment, String title) {
ContentValues values = new ContentValues();
TimeZone tz = TimeZone.getDefault();
values.put("calendar_id", 1);
values.put("title", title);
values.put("description", comment);
values.put("eventLocation", location);
values.put("dtstart", start);
values.put("dtend", end);
values.put("allDay", 0);
values.put("rrule", "FREQ=YEARLY");
values.put("eventTimezone", tz.getID());
Uri l_eventUri;
if (android.os.Build.VERSION.SDK_INT <= 7) {
// the old way
l_eventUri = Uri.parse("content://calendar/events");
} else {
// the new way
l_eventUri = Uri.parse("content://com.android.calendar/events");
}
Uri l_uri = getActivity().getContentResolver()
.insert(l_eventUri, values);
}
Here is another try:
private void insertEvent2(int start, int end, String location, String comment, String title){
ContentResolver cr = getActivity().getContentResolver();
ContentValues eventsArray = new ContentValues();
ContentValues values = new ContentValues();
TimeZone timeZone = TimeZone.getDefault();
values.put(CalendarContract.Events.DTSTART,start);
values.put(CalendarContract.Events.DTEND,end);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
values.put(CalendarContract.Events.TITLE, title);
values.put(CalendarContract.Events.DESCRIPTION, title);
values.put(CalendarContract.Events.EVENT_LOCATION,location);
values.put(CalendarContract.Events.CALENDAR_ID, 1);
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
eventsArray = values;
Uri l_uri = getActivity().getContentResolver()
.insert(CalendarContract.Events.CONTENT_URI, values);
}
But I can't see the events I have created when I see the default android calendar. Have you any idea how should I do insert an event?