Добавление событий для всех дней между датой начала и датой окончания в Google календаре Android

Добавление событий для всех дней между датой начала и датой окончания в Google календаре Android. Я хочу остаток каждые 3 месяца до даты окончания. Это моя функция

public void addEvent1(Context ctx, String title){ SimpleDateFormat df2 = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat df3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault()); Date Startdate = null; Date Enddate =null; String dtStart = date.getText().toString(); try { Startdate = df2.parse(dtStart); Enddate = df2.parse(stringMaturityDate); Log.v("SDate: ",""+ df3.format(Startdate)); Log.v("EDate: ",""+ df3.format(Enddate)); } catch(ParseException e){ e.printStackTrace(); } Calendar cali = Calendar.getInstance(); cali.setTime(Startdate); Calendar cali2 = Calendar.getInstance(); cali2.setTime(Enddate); SimpleDateFormat yyyymmdd = new SimpleDateFormat("yyyyMMdd"); Calendar dt = Calendar.getInstance(); dt.setTime(Enddate); String dtUntill = yyyymmdd.format(dt.getTime()); ContentResolver contentResolver = ctx.getContentResolver(); ContentValues calEvent = new ContentValues(); calEvent.put(CalendarContract.Events.CALENDAR_ID, 1); // XXX pick) calEvent.put(CalendarContract.Events.TITLE, title); calEvent.put(CalendarContract.Events.RRULE, "FREQ=MONTHLY;INTERVAL=3;UNTIL=" + dtUntill); calEvent.put(CalendarContract.Events.DTSTART, cali.getTimeInMillis()); calEvent.put(CalendarContract.Events.DTEND, cali2.getTimeInMillis()); calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "" + java.util.Locale.getDefault()); Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent); int id = Integer.parseInt(uri.getLastPathSegment()); Toast.makeText(ctx, "Created Calendar Event " + id, Toast.LENGTH_SHORT).show(); ContentValues reminders = new ContentValues(); reminders.put(CalendarContract.Reminders.EVENT_ID, id); reminders.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT); reminders.put(CalendarContract.Reminders.MINUTES, 10); Uri uri1 = contentResolver.insert(CalendarContract.Reminders.CONTENT_URI, reminders); } 

Эта функция добавляет события каждый день. Как удалить это. Мне нужен только остаток. Есть ли что-то в моем коде? Screenshot1 screenshot2

Если я все правильно прочитаю, вы хотите, чтобы календарный элемент каждый месяц дерева находился в течение одного полного дня. Вы пытались добавить эту строку?

 contentValues.put(CalendarContract.EXTRA_EVENT_ALL_DAY, true); 

И изменение даты окончания одного элемента календаря устанавливается в конце года, пока это будет дата окончания текущего элемента. DTEND – это конец текущего элемента. DURATION – это конец повторного освобождения отцовства.

Если я неправильно понял проблему, пожалуйста, дайте мне подробное описание. Для всех параметров в CalenderContracts проверьте эту ссылку .

РЕДАКТИРОВАТЬ:

Вы хотите назначить календарь на каждый день, но напоминаете пользователю каждые три месяца. С вашим кодом это в настоящее время невозможно, так как вы добавляете напоминание для каждого элемента календаря с этим идентификатором (так для каждого дня). Простое решение, о котором я могу думать, это создание отдельной встречи с другим идентификатором, который вы повторяете каждые три месяца с напоминанием и другим идентификатором. В настоящее время невозможно установить будильник для некоторых событий с одним и тем же идентификатором, а некоторые нет.