field-date
A native date input, plus the natural-language combobox datetime.js arms unless the caller passes Plain. Type "tomorrow" into it.
Enhanced input: type "tomorrow", or "in 3 weeks"
<section rst-box><form rst-form method="post" action="#"><div rst-field>
<label rst-field-label for="field-date_live">Publish on</label>
<input rst-input id="field-date_live" name="field-date_live" type="date" value="2026-09-04" aria-describedby="field-date_live-hint" data-rst-date data-rst-date-words="{"ago":"ago","am":"am|a.m.","at":"at","day":"day|days","hour":"hour|hours|h","in":"in","last":"last","midnight":"midnight","minute":"minute|minutes|min|mins|m","month":"month|months","next":"next","noon":"noon|midday","pm":"pm|p.m.","today":"today","tomorrow":"tomorrow","week":"week|weeks","yesterday":"yesterday"}" data-rst-date-set="Set" data-rst-date-hint="Try: {example}" data-rst-date-pick="Open the calendar" data-rst-date-calendar="Calendar" data-rst-date-prev-month="Previous month" data-rst-date-next-month="Next month" data-rst-date-results="{n} suggestions" data-rst-date-result-one="1 suggestion" data-rst-date-quick-today="Today" data-rst-date-quick-tomorrow="Tomorrow" data-rst-date-quick-next-week="In a week" data-rst-date-quick-plus-1h="An hour later" data-rst-date-quick-plus-2h="Two hours later" data-rst-date-quick-end-of-day="End of that day" data-rst-date-quick-next-day="Same time next day">
<small rst-field-hint id="field-date_live-hint">The day it goes live.</small>
</div></form></section>
The words it parses ride out on data-rst-date-words, resolved through this page's catalog: the field parses the language the page is in.
Required, with an error
<section rst-box><form rst-form method="post" action="#"><div rst-field>
<label rst-field-label for="field-date_error">Publish on <span rst-field-required aria-hidden="true">*</span></label>
<input rst-input id="field-date_error" name="field-date_error" type="date" required aria-invalid="true" aria-describedby="field-date_error-error" data-rst-date data-rst-date-words="{"ago":"ago","am":"am|a.m.","at":"at","day":"day|days","hour":"hour|hours|h","in":"in","last":"last","midnight":"midnight","minute":"minute|minutes|min|mins|m","month":"month|months","next":"next","noon":"noon|midday","pm":"pm|p.m.","today":"today","tomorrow":"tomorrow","week":"week|weeks","yesterday":"yesterday"}" data-rst-date-set="Set" data-rst-date-hint="Try: {example}" data-rst-date-pick="Open the calendar" data-rst-date-calendar="Calendar" data-rst-date-prev-month="Previous month" data-rst-date-next-month="Next month" data-rst-date-results="{n} suggestions" data-rst-date-result-one="1 suggestion" data-rst-date-quick-today="Today" data-rst-date-quick-tomorrow="Tomorrow" data-rst-date-quick-next-week="In a week" data-rst-date-quick-plus-1h="An hour later" data-rst-date-quick-plus-2h="Two hours later" data-rst-date-quick-end-of-day="End of that day" data-rst-date-quick-next-day="Same time next day">
<small rst-field-error id="field-date_error-error">Pick a date after today.</small>
</div></form></section>
Bounded
<section rst-box><form rst-form method="post" action="#"><div rst-field>
<label rst-field-label for="field-date_bounded">Within this year</label>
<input rst-input id="field-date_bounded" name="field-date_bounded" type="date" value="2026-09-04" min="2026-01-01" max="2026-12-31" data-rst-date data-rst-date-words="{"ago":"ago","am":"am|a.m.","at":"at","day":"day|days","hour":"hour|hours|h","in":"in","last":"last","midnight":"midnight","minute":"minute|minutes|min|mins|m","month":"month|months","next":"next","noon":"noon|midday","pm":"pm|p.m.","today":"today","tomorrow":"tomorrow","week":"week|weeks","yesterday":"yesterday"}" data-rst-date-set="Set" data-rst-date-hint="Try: {example}" data-rst-date-pick="Open the calendar" data-rst-date-calendar="Calendar" data-rst-date-prev-month="Previous month" data-rst-date-next-month="Next month" data-rst-date-results="{n} suggestions" data-rst-date-result-one="1 suggestion" data-rst-date-quick-today="Today" data-rst-date-quick-tomorrow="Tomorrow" data-rst-date-quick-next-week="In a week" data-rst-date-quick-plus-1h="An hour later" data-rst-date-quick-plus-2h="Two hours later" data-rst-date-quick-end-of-day="End of that day" data-rst-date-quick-next-day="Same time next day">
</div></form></section>
Plain — the bare native input
<section rst-box><form rst-form method="post" action="#"><div rst-field>
<label rst-field-label for="field-date_plain">Publish on</label>
<input rst-input id="field-date_plain" name="field-date_plain" type="date" value="2026-09-04">
</div></form></section>
No enhancement attributes at all, so datetime.js has nothing to find. The native picker still opens.