material-components / material-components/material-components-android
[DatePicker / Scheduling] Support recurring schedules with included and excluded dates
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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