Skip to main content

DatePicker

Allow users to select a specific date or date range.

string

Dates that can be selected.

A comma-separated list of dates, date ranges. Whitespace is allowed after commas.

The default '' allows all dates.

  • Dates in YYYY-MM-DD format allow a single date.
  • Dates in YYYY-MM format allow a whole month.
  • Dates in YYYY format allow a whole year.
  • Ranges are expressed as start--end. - Ranges are inclusive.
    • If either start or end is omitted, the range is unbounded in that direction.
    • If parts of the date are omitted for start, they are assumed to be the minimum possible value. So 2024-- is equivalent to 2024-01-01--.
    • If parts of the date are omitted for end, they are assumed to be the maximum possible value. So --2024 is equivalent to --2024-12-31.
    • Whitespace is allowed either side of --.
string

Days of the week that can be selected. These intersect with the result of allowDates and disallowDates.

A comma-separated list of dates, date ranges. Whitespace is allowed after commas.

The default '' has no effect on the result of allowDates and disallowDates.

Days are sunday, monday, tuesday, wednesday, thursday, friday, saturday.

string

Default selected value.

The default means no date is selected.

If the provided value is invalid, no date is selected.

  • If type="single", this is a date in YYYY-MM-DD format.
  • If type="multiple", this is a comma-separated list of dates in YYYY-MM-DD format.
  • If type="range", this is a range in YYYY-MM-DD--YYYY-MM-DD format. The range is inclusive.
string

Default month to display in YYYY-MM format.

This value is used until view is set, either directly or as a result of user interaction.

Defaults to the current month in the user's locale.

string

Dates that cannot be selected. These subtract from allowDates.

A comma-separated list of dates, date ranges. Whitespace is allowed after commas.

The default '' has no effect on allowDates.

  • Dates in YYYY-MM-DD format disallow a single date.
  • Dates in YYYY-MM format disallow a whole month.
  • Dates in YYYY format disallow a whole year.
  • Ranges are expressed as start--end. - Ranges are inclusive.
    • If either start or end is omitted, the range is unbounded in that direction.
    • If parts of the date are omitted for start, they are assumed to be the minimum possible value. So 2024-- is equivalent to 2024-01-01--.
    • If parts of the date are omitted for end, they are assumed to be the maximum possible value. So --2024 is equivalent to --2024-12-31.
    • Whitespace is allowed either side of --.
string

Days of the week that cannot be selected. This subtracts from allowDays, and intersects with the result of allowDates and disallowDates.

A comma-separated list of dates, date ranges. Whitespace is allowed after commas.

The default '' has no effect on allowDays.

Days are sunday, monday, tuesday, wednesday, thursday, friday, saturday.

string

An identifier for the field that is unique within the nearest containing form.

"single" | "multiple" | "range"
string

Current selected value.

The default means no date is selected.

If the provided value is invalid, no date is selected.

Otherwise:

  • If type="single", this is a date in YYYY-MM-DD format.
  • If type="multiple", this is a comma-separated list of dates in YYYY-MM-DD format.
  • If type="range", this is a range in YYYY-MM-DD--YYYY-MM-DD format. The range is inclusive.

Events:

  • onInput - Invoked when any date is selected. Will fire before onChange.
  • onChange - Invoked when the value is changed. For type="single" and type="multiple", this is the same as onInput. For type="range", this is only called when the range is completed by selecting the end date of the range.
string

Displayed month in YYYY-MM format.

onViewChange is called when this value changes.

Defaults to defaultView.

Was this section helpful?

Learn more about registering events.

<typeof tagName> | null
<typeof tagName> | null
<typeof tagName> | null
<typeof tagName> | null
< typeof tagName, HTMLElementEventMap['viewchange'] > | null
Was this section helpful?

Code

<s-date-picker
view="2025-05"
type="range"
value="2025-05-28--2025-05-31"
></s-date-picker>

Preview