Date picker
The date picker component allows merchants to select dates using a calendar interface. Use it when merchants benefit from seeing dates in context of the full month, such as selecting dates relative to today or needing weekday context.
The component supports single dates, multiple dates, and date ranges. For text date entry, use date field.
Supported targets
- purchase.
checkout. actions. render-before - purchase.
checkout. block. render - purchase.
checkout. cart-line-item. render-after - purchase.
checkout. cart-line-list. render-after - purchase.
checkout. contact. render-after - purchase.
checkout. delivery-address. render-after - purchase.
checkout. delivery-address. render-before - purchase.
checkout. footer. render-after - purchase.
checkout. header. render-after - purchase.
checkout. payment-method-list. render-after - purchase.
checkout. payment-method-list. render-before - purchase.
checkout. pickup-location-list. render-after - purchase.
checkout. pickup-location-list. render-before - purchase.
checkout. pickup-location-option-item. render-after - purchase.
checkout. pickup-point-list. render-after - purchase.
checkout. pickup-point-list. render-before - purchase.
checkout. reductions. render-after - purchase.
checkout. reductions. render-before - purchase.
checkout. shipping-option-item. details. render - purchase.
checkout. shipping-option-item. render-after - purchase.
checkout. shipping-option-list. render-after - purchase.
checkout. shipping-option-list. render-before - purchase.
thank-you. announcement. render - purchase.
thank-you. block. render - purchase.
thank-you. cart-line-item. render-after - purchase.
thank-you. cart-line-list. render-after - purchase.
thank-you. customer-information. render-after - purchase.
thank-you. footer. render-after - purchase.
thank-you. header. render-after
Supported targets
- purchase.
checkout. actions. render-before - purchase.
checkout. block. render - purchase.
checkout. cart-line-item. render-after - purchase.
checkout. cart-line-list. render-after - purchase.
checkout. contact. render-after - purchase.
checkout. delivery-address. render-after - purchase.
checkout. delivery-address. render-before - purchase.
checkout. footer. render-after - purchase.
checkout. header. render-after - purchase.
checkout. payment-method-list. render-after - purchase.
checkout. payment-method-list. render-before - purchase.
checkout. pickup-location-list. render-after - purchase.
checkout. pickup-location-list. render-before - purchase.
checkout. pickup-location-option-item. render-after - purchase.
checkout. pickup-point-list. render-after - purchase.
checkout. pickup-point-list. render-before - purchase.
checkout. reductions. render-after - purchase.
checkout. reductions. render-before - purchase.
checkout. shipping-option-item. details. render - purchase.
checkout. shipping-option-item. render-after - purchase.
checkout. shipping-option-list. render-after - purchase.
checkout. shipping-option-list. render-before - purchase.
thank-you. announcement. render - purchase.
thank-you. block. render - purchase.
thank-you. cart-line-item. render-after - purchase.
thank-you. cart-line-list. render-after - purchase.
thank-you. customer-information. render-after - purchase.
thank-you. footer. render-after - purchase.
thank-you. header. render-after
Anchor to propertiesProperties
- Anchor to allowallowallowstringstringDefault: ""Default: ""
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
format allow a single date. - Dates in
format allow a whole month. - Dates in
format allow a whole year. - Ranges are expressed as
start--end. - Ranges are inclusive.- If either
startorendis 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. So2024--is equivalent to2024-01-01--. - If parts of the date are omitted for
end, they are assumed to be the maximum possible value. So--2024is equivalent to--2024-12-31. - Whitespace is allowed either side of
--.
- If either
- Dates in
- Anchor to allowDaysallowDaysallowDaysstringstringDefault: ""Default: ""
Days of the week that can be selected. These intersect with the result of
allowanddisallow.A comma-separated list of days. Whitespace is allowed after commas.
The default
''has no effect on the result ofallowanddisallow.Days are
sunday,monday,tuesday,wednesday,thursday,friday,saturday.- Anchor to defaultValuedefaultValuedefaultValuestringstringDefault: ""Default: ""
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 informat. - If
type="multiple", this is a comma-separated list of dates informat. - If
type="range", this is a range informat. The range is inclusive.
- If
- Anchor to defaultViewdefaultViewdefaultViewstringstring
Default month to display in
format.This value is used until
viewis set, either directly or as a result of user interaction.Defaults to the current month in the user's locale.
- Anchor to disableddisableddisabledbooleanbooleanDefault: falseDefault: false
Disables the field, disallowing any interaction.
- Anchor to disallowdisallowdisallowstringstringDefault: ""Default: ""
Dates that cannot be selected. These subtract from
allow.A comma-separated list of dates, date ranges. Whitespace is allowed after commas.
The default
''has no effect onallow.- Dates in
format disallow a single date. - Dates in
format disallow a whole month. - Dates in
format disallow a whole year. - Ranges are expressed as
start--end. - Ranges are inclusive.- If either
startorendis 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. So2024--is equivalent to2024-01-01--. - If parts of the date are omitted for
end, they are assumed to be the maximum possible value. So--2024is equivalent to--2024-12-31. - Whitespace is allowed either side of
--.
- If either
- Dates in
- Anchor to disallowDaysdisallowDaysdisallowDaysstringstringDefault: ""Default: ""
Days of the week that cannot be selected. This subtracts from
, and intersects with the result ofallowanddisallow.A comma-separated list of days. Whitespace is allowed after commas.
The default
''has no effect on.Days are
sunday,monday,tuesday,wednesday,thursday,friday,saturday.- Anchor to idididstringstring
A unique identifier for the element.
- Anchor to namenamenamestringstring
An identifier for the field that is unique within the nearest containing form.
- Anchor to typetypetype'single' | 'multiple' | 'range''single' | 'multiple' | 'range'Default: "single"Default: "single"
The type of selection the date picker allows.
singleallows selecting a single date.multipleallows selecting multiple non-contiguous dates.rangeallows selecting a single range of dates.
- Anchor to valuevaluevaluestringstringDefault: ""Default: ""
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 informat. - If
type="multiple", this is a comma-separated list of dates informat. - If
type="range", this is a range informat. The range is inclusive.
- If
- Anchor to viewviewviewstringstring
Displayed month in
format.is called when this value changes.Defaults to
.
Anchor to eventsEvents
Learn more about registering events.
- Anchor to blurblurblurCallbackEventListener<typeof tagName>CallbackEventListener<typeof tagName>
Callback when the element loses focus.
- Anchor to changechangechangeCallbackEventListener<typeof tagName>CallbackEventListener<typeof tagName>
Callback when the user has finished editing a field, e.g. once they have blurred the field.
- Anchor to focusfocusfocusCallbackEventListener<typeof tagName>CallbackEventListener<typeof tagName>
Callback when the element receives focus.
- Anchor to inputinputinputCallbackEventListener<typeof tagName>CallbackEventListener<typeof tagName>
Callback when the user makes any changes in the field.
- Anchor to viewChangeviewChangeviewChangeCallbackEventListener<typeof tagName>CallbackEventListener<typeof tagName>
Callback when the view changes.
CallbackEventListener
(EventListener & {
(event: CallbackEvent<TTagName, Event> & TData): void;
}) | nullCallbackEvent
TEvent & {
currentTarget: HTMLElementTagNameMap[TTagName];
}Preview

Examples
Code
Default
<s-date-picker defaultView="2025-10" defaultValue="2025-10-03"></s-date-picker>