material-components / material-components/material-components-android

[DatePicker / Scheduling] Support recurring schedules with included and excluded dates

Open
#5,088 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Java
Stars
17.4k
Forks
3.2k
PR merge metrics
No merged PRs in 30d

Description

## Is your feature request related to a problem? Please describe.

Many scheduling use cases cannot be represented well using the current “repeat on weekdays” approach alone.

Example:

* A user wants an alarm every weekday
* But wants to exclude holidays or vacation days
* Or wants a mostly recurring schedule with a few additional one-off dates

Currently, applications usually solve this by:

* duplicating alarms/events multiple times
* storing many separate schedules
* implementing custom recurrence UIs independently

This becomes difficult to manage and creates inconsistent UX across Android apps.

---

## Describe the solution you'd like

A Material-supported scheduling component, API pattern, or guideline that supports:

* recurring weekdays
* additional explicitly included dates
* explicitly excluded dates (exceptions)

Example:

* Repeat every Monday–Friday
* Exclude 2026-05-01
* Include 2026-05-24 additionally

Potential UX:

* weekday selector
* calendar view with selectable/deselectable dates
* visual distinction between:

* recurring dates
* manually included dates
* excluded exception dates

Example data structure:

```json id="mrmbrt"
{
"recurring": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
"includedDates": ["2026-05-24"],
"excludedDates": ["2026-05-01", "2026-12-25"]
}
```

This pattern would be useful for:

* alarms
* reminders
* medication schedules
* habit trackers
* shift/work planning
* school schedules

---

## Describe alternatives you've considered

Current alternatives are:

* duplicating alarms/events manually
* creating many separate recurring schedules
* implementing fully custom recurrence systems

Some OEM apps already support similar behavior (for example OnePlus Clock), but there is currently no common Material pattern or reusable implementation for this type of scheduling UX.

Here are some reference images from the oneplus app.
While this would look very different for material component the idea is still there.



---

## Additional context

This request is not specifically about alarms, but about a reusable scheduling/recurrence interaction pattern that could benefit many Android applications.

Even if a full component is out of scope, official Material guidance, recurrence models, or composable building blocks for this scheduling pattern would already be very valuable.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are identified. Start by reviewing the existing DatePicker and related Material scheduling APIs, then determine whether the scope is a reusable component, an API pattern, or documentation guidance. Done should include a defined approach for recurring weekdays plus included and excluded dates.

Written by the indexing model from the issue text.

Assessment

Tech stack
android
Domain
design, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.