Search code examples
androidandroid-calendar

Does alarm/reminder get automatically deleted when its event is deleted?


I create a calendar event with HAS_ALARM set to 1 as follows:

contentResolver.insert(
    Uri.parse("content://com.android.calendar/calendars"),
    contentValuesOf(
        CalendarContract.Events.CALENDAR_ID to calendarId,
        CalendarContract.Events.TITLE to event.title,
        CalendarContract.Events.EVENT_LOCATION to event.location,
        CalendarContract.Events.DESCRIPTION to event.description,
        CalendarContract.Events.DTSTART to event.startTimeInMillis,
        CalendarContract.Events.DTEND to event.endTimeInMillis,
        CalendarContract.Events.EVENT_TIMEZONE to event.zoneName,
        CalendarContract.Events.HAS_ALARM to 1
    )
)

Then I create a reminder for the event created above as follows:

contentResolver.insert(
    Uri.parse("content://com.android.calendar/reminders"),
    contentValuesOf(
        CalendarContract.Reminders.EVENT_ID to it,
        CalendarContract.Reminders.METHOD to CalendarContract.Reminders.METHOD_ALERT,
        CalendarContract.Reminders.MINUTES to reminderTimeInMinutes
    )
)

I remove the event when required like this:

contentResolver.delete(
    Uri.parse("content://com.android.calendar/events"),
    String.format(
        "%s = ? and %s = ? and %s = ?",
        CalendarContract.Events.TITLE,
        CalendarContract.Events.DTSTART,
        CalendarContract.Events.DTEND
    ),
    arrayOf(event.title, event.startTimeInMillis.toString(), event.endTimeInMillis.toString())
)

However, I am unable to delete its reminder because I am not keeping event id's.

Does the reminder get automatically deleted when I delete its event? If not, how can I delete the reminder, preferably without storing any id?


Solution

  • It seems an event's reminders are automatically deleted when the event is deleted.