上記のテクニックを試したことはありません。カレンダーを保存するために使用するコード スニペットを次に示します。
public static void saveCalendar(Context ctx, String title,
        String description, String location, Calendar cal_start,
        Calendar cal_end) {
    // look for calendar
    Cursor cursor = ctx.getContentResolver()
            .query(Uri.parse("content://com.android.calendar/calendars"),
                    new String[] { "_id", "displayname" }, "selected=1",
                    null, null);
    cursor.moveToFirst();
    String[] CalNames = new String[cursor.getCount()];
    int[] CalIds = new int[cursor.getCount()];
    for (int i = 0; i < CalNames.length; i++) {
        CalIds[i] = cursor.getInt(0);
        CalNames[i] = cursor.getString(1);
        cursor.moveToNext();
    }
    cursor.close();
    // put calendar event
    ContentValues event = new ContentValues();
    event.put("calendar_id", CalIds[0]);
    event.put("title", title);
    event.put("description", description);
    event.put("eventLocation", location);
    event.put("dtstart", cal_start.getTimeInMillis());
    event.put("dtend", cal_end.getTimeInMillis());
    event.put("hasAlarm", 1);
    Uri eventsUri = Uri.parse("content://com.android.calendar/events");
    Uri newEvent = ctx.getContentResolver().insert(eventsUri, event);
    // put alarm reminder for an event, 2 hours prior
    long eventID = Long.parseLong(newEvent.getLastPathSegment());
    ContentValues cv_alarm = new ContentValues();
    cv_alarm.put("event_id", eventID);
    cv_alarm.put("method", 1);
    cv_alarm.put("minutes", 120);
    ctx.getContentResolver()
            .insert(Uri.parse("content://com.android.calendar/reminders"),
                    cv_alarm);
}
アラーム/リマインダーを hasAlarm に 0 に設定したくない場合、アラームを追加するコードを入力しないでください。わたしにはできる。