The iPhone Calendar app is nice in many respects, but Apple could make it much better. In particular, it should be possible to get rid of almost all the modal dialogs which require pressing 'done' when finished.
Right now in Calendar it takes far too long, in my opinion, to create a new event. I often have to fumble frustratingly to set all the fields I need when standing in front of somebody, e.g. at a dentist's office.
Here are my specific suggestions:
When displaying the calendar of a day, as shown below, you currently have to tap '+' to create a new event. However iOS should allow you to press and hold blank space to make a new event appear, in edit mode. This would make it much easier when scheduling events. The position of the finger would indicate the time of the event. Currently the default start time for new events is the next hour from the current time, regardless of the day. For example if it is 1:24 on Dec 1, and I am scheduling an event for Dec 2, the new event will default to 2 p.m. until I later adjust it. This is rarely useful.
When you click on an event you get an 'Event Details' screen as shown below. If you want to edit the event, you have to press 'Edit'. iOS should allow you to touch any field to immediately jump into editing of that field. You might argue that this would result in accidental editing, but accidental changes should always be reversible by shaking.
In editing mode you have to click on a field, edit the field, then tap 'Done'. You have to follow this process for every field. Instead, iOS should allow editing calendar fields directly, and move on to editing other fields without any need to tap 'Done'. For example, if I am in the middle of editing the title of an event, as shown below, I should be able to 'flick' down to see another field such as 'alert'. The title would be saved, the keyboard would disappear, and the control for alerts would appear. No more pressing 'done' for every field.
When editing 'Starts' and 'Ends' to set an event's time, one is presented with the 'flick wheels' interface, shown below, which can be quite nice in other contexts. However I think here a major improvement is possible. It would be better to see the context of the event, in other words a mini schedule for the hours surrounding the current time that would allow the user to drag the entire event, or just the start and end of it, so as to position it among other events on that day more easily. There would be space for this if the interface for picking the day just showed the chosen day and date, with 'next' and 'previous' arrows next to it.
In 'Calendar' editing mode, shown below, you put a check mark next to a calendar. As soon as you pick the calendar, the interaction should be done. There should be no need to force you to tap 'done'.
Implementing all the above recommendations would very considerably reduce the number of gestures required to add or modify an event.