Ok, I read docs very precisely here: http://developer.android.com/guide/topics/providers/calendar-provider.html#update-event and its written something like this:
// Here is an example of an intent that sets a new title for a specified event and lets users edit the event in the Calendar.
long eventID = 208;
Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID);
Intent intent = new Intent(Intent.ACTION_EDIT)
.setData(uri)
.putExtra(Events.TITLE, "My New Title");
startActivity(intent);
For me it doesn't work - it opens correct event, but it's NOT POSSIBLE to edit it - all fields are read only. Only fields what I can change are Timezone, and Reminder. Everything other is read only. Am I doing something wrong?
My API level is 14 (ICS)
So I don't think you're doing anything wrong - I put together a basic implementation of the same thing via command line and the same restriction applies:
am start -a android.intent.action.EDIT --es title "New Title" content://com.android.calendar/events/1
I'm only able to edit the same fields you are - You might be better off doing a ACTION_VIEW and letting the user decide to edit (sorry I don't have a better answer for you, that's kind of annoying)
Workaround for this problem: If you use Intent.ACTION_VIEW you'll at least get an activity in which you can hit the Edit button, after which you can edit the title and location and everything else (in the default calendar app anyway).
来源:https://stackoverflow.com/questions/13072275/using-an-intent-to-edit-calendar-event-doesnt-work