Default (24-hour)

Type a time or click the clock icon

24-hour format, any minute precision
razor
<InputTimePicker Label="Start time" @bind-SelectedTime="defaultTime" Hint="24-hour format, any minute precision" /> @code { private TimeOnly? defaultTime; }

12-hour format with AM/PM

Three-column dropdown adds a period selector

Selected: 02:30 PM

razor
<InputTimePicker Label="Appointment time" Format="12h" @bind-SelectedTime="twelveHourTime" />

Minute step variants

MinuteStep controls the dropdown column; typed input is unrestricted

razor
<InputTimePicker Label="Step 5" MinuteStep="5" @bind-SelectedTime="step5Time" /> <InputTimePicker Label="Step 10" MinuteStep="10" @bind-SelectedTime="step10Time" /> <InputTimePicker Label="Step 15" MinuteStep="15" @bind-SelectedTime="step15Time" /> <InputTimePicker Label="Step 30" MinuteStep="30" @bind-SelectedTime="step30Time" />

Required

Required asterisk and validation message when empty

Time is required
razor
<InputTimePicker Label="Shift start" Required="true" HasError="true" ErrorMessage="Time is required" @bind-SelectedTime="requiredTime" />

Range validation (business hours 09:00–17:00)

Out-of-range minutes/hours are disabled in the dropdown; typed values surface an auto-generated error

Pick a time during business hours

Selected: 10:30

razor
<InputTimePicker Label="Meeting time" MinTime="@(new TimeOnly(9, 0))" MaxTime="@(new TimeOnly(17, 0))" @bind-SelectedTime="rangeTime" Hint="Pick a time during business hours" />

External error message

Custom ErrorMessage takes precedence over auto-generated messages

Pick a time after your arrival
razor
<InputTimePicker Label="Departure" ErrorMessage="Pick a time after your arrival" @bind-SelectedTime="customErrorTime" />

With label, hint, and help

All chrome enabled

Defaults to your local timezone
razor
<InputTimePicker Label="Reminder" Required="true" ShowHelp="true" HelpText="We'll send a notification at this time" Hint="Defaults to your local timezone" @bind-SelectedTime="fullChromeTime" />

Disabled

Input and toggle are locked

razor
<InputTimePicker Label="Locked time" Disabled="true" SelectedTime="@(new TimeOnly(14, 30))" />

Paired with InputDatePicker

Compose a date+time field by placing two inputs side by side

Selected: May 17, 2026 at 09:00 AM

razor
<div style="display: grid; grid-template-columns: 2fr 1fr; gap: 1rem;"> <InputDatePicker Label="Date" @bind-SelectedDate="pairedDate" /> <InputTimePicker Label="Time" Format="12h" MinuteStep="15" @bind-SelectedTime="pairedTime" /> </div>
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.