qkx
qkx

Reputation: 2563

Using an intent to edit calendar event doesn't work

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)

Upvotes: 6

Views: 2976

Answers (4)

benji41
benji41

Reputation: 11

On API level 34 it is creating a new one instead

Upvotes: 1

GianhTran
GianhTran

Reputation: 3711

You can able edit an event in the only case you are an organizer of this event so in your case, you a not the organizer

Upvotes: 0

Divisible by Zero
Divisible by Zero

Reputation: 2654

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).

Upvotes: 3

JRaymond
JRaymond

Reputation: 11782

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)

Upvotes: 6

Related Questions