CreateEventTool
Inserts a new event into CalendarContract.Events via ContentResolver. Requires WRITE_CALENDAR (plus READ_CALENDAR for the default-calendar lookup). start/end are parsed strictly as yyyy-MM-dd HH:mm (device timezone; impossible dates and trailing text are rejected) and end must be after start. When calendar_id is omitted it falls back to the primary calendar, else the first visible calendar with at least contributor access (see CalendarSupport.findWritableCalendarId). Output: event_id (the inserted row id, may be null if the URI lacks a numeric segment), plus echoed title, start, and end.