Common form options
These are regular Filament form fields. Use events and validation for complete callback recipes. Avoid replacing the normal persistence formatter unless you deliberately want a different output contract.
Appearance
ControlSize::Sm, Md or Lg if you prefer the size enum. Invalid variant names are configuration errors; soft is not a date/time variant.
Formats, language and timezone
displayFormat('H:i') explicitly chooses 24-hour output even if hourCycle(12) is set; use h:i A for an explicit 12-hour format. Prefer full-year Y to the two-digit y when the century matters. Date/clock typed parsers use numeric ASCII values; guided input also normalizes supported localized decimal digits.
Calendar systems
Full-date calendars use the systems available in@internationalized/date: Gregorian, Buddhist, Coptic, Ethiopic, Ethiopic Amete Alem, Hebrew, Indian, Islamic Civil, Islamic Tabular, Islamic Umm al-Qura, Japanese, Persian and ROC. Use supported identifiers such as gregory, persian, indian, hebrew, islamic-civil or islamic-umalqura. gregorian aliases gregory; islamic aliases islamic-civil.
Precision and clock choices
allowedTimes() if only exact values may submit. allowedTimes() on a day-only field is invalid configuration.
Bounds and availability
Calendar presentation
Recommended defaults
withRecommendedDefaults() applies a preset at the moment it is called. Options called afterwards override it. Put the preset first to keep your explicit hour cycle and precision.
Dynamic configuration
Choosing options for your form
I only need a day, with no manual typing
I only need a day, with no manual typing
Use
FlexDatePicker. Keep its default editable(false) and Y-m-d storage.I need date and time with three exact slots
I need date and time with three exact slots
Use
FlexDateTimePicker, allowedTimes([...]), and optionally disabledWeekdays().I need a range with no preset panel
I need a range with no preset panel
Use
FlexDateRangeField::make('period')->rangePresets([]).I need an overnight period
I need an overnight period
Use a timed
FlexDateRangeField with dates on both endpoints. A FlexTimeRangeField stays within one day.I need more than 24 elapsed hours
I need more than 24 elapsed hours
Use
FlexDurationField. A clock is always a time of day.