Blazorise DatePicker component

DatePicker is an input field that allows the user to enter a date by typing or by selecting from a calendar overlay.

<DatePicker> is a fully featured date selection component that lets users select a date. Its calendar, keyboard navigation, and parsing are implemented in Blazor and C# without a third-party JavaScript picker. When InputFormat is defined, DatePicker continues to use Blazorise's existing InputMask integration for compatible caret-aware editing. Unlike DateInput, which renders type="date", DatePicker will render type="text" in the DOM.

Examples

Basic example

<DatePicker TValue="DateTime?" @bind-Value="@value" />
@code {
    DateTime? value;
}

Add icon

To add icon you can combine DatePicker with an Addon.
<Addons>
    <Addon AddonType="AddonType.Body">
        <DatePicker @ref="@datePicker" TValue="DateTime?" @bind-Value="@value" />
    </Addon>
    <Addon AddonType="AddonType.End">
        <Button Color="Color.Light" Clicked="@(()=>datePicker.ToggleAsync())">
            <Icon Name="IconName.CalendarDay" />
        </Button>
    </Addon>
</Addons>
@code {
    DatePicker<DateTime?> datePicker;

    DateTime? value;
}

Disable dates

If you'd like to make certain dates unavailable for selection you can assign the DisabledDates parameter.
<DatePicker TValue="DateTime?" DisabledDates="@disabledDates" />
@code {
    DateTime?[] disabledDates = new DateTime?[] {
        DateTime.Now.AddDays(-1),
        DateTime.Now.AddDays(2),
    };
}

Enable dates

If you'd like to make only certain dates available for selection, you can assign the EnabledDates parameter.
<DatePicker TValue="DateTime?" EnabledDates="@enabledDates" />
@code {
    DateTime?[] enabledDates = new DateTime?[]{
        DateTime.Now.AddDays(-1),
        DateTime.Now.AddDays(2),
    };
}

Disable days

If you'd like to make only certain days in a week unavailable for selection you can assign the DisabledDays parameter.
<DatePicker TValue="DateTime?" DisabledDays="@disabledDays" />
@code {
    DayOfWeek[] disabledDays = new[]  {
        DayOfWeek.Saturday,
        DayOfWeek.Sunday,
    };
}

Range example

Select a range of dates using the range calendar.
<DatePicker @bind-Value="selectedDates" InputMode="DateInputMode.Date" SelectionMode="DateInputSelectionMode.Range" />
@code {
    IReadOnlyList<DateTime?> selectedDates;
}

Multiple example

It is possible to select multiple dates.
<DatePicker @bind-Value="selectedDates" InputMode="DateInputMode.Date" SelectionMode="DateInputSelectionMode.Multiple" />
@code{
    IReadOnlyList<DateTime?> selectedDates;
}

Inline Calendar

To always show the calendar you just need to set Inline parameter.
<DatePicker TValue="DateTime?" @bind-Value="@value" Inline />
@code {
    DateTime? value;
}

Non-static

By default, the calendar menu will position statically. This means that it will also keep its position relative to the page when you scroll.

If you want to disable this behavior, you should assign the value false to the StaticPicker parameter.

<DatePicker TValue="DateTime?" @bind-Value="@value" StaticPicker="false" />
@code {
    DateTime? value;
}

Input mask

In this example, the user is prompted to enter a value in the format dd.MM.yyyy.

Notice that we have also defined a DisplayFormat parameter. This is needed so that after the user finish with the input mask we need to properly parse it using the same format.

<DatePicker TValue="DateTime?" @bind-Value="@value" InputFormat="dd.MM.yyyy" DisplayFormat="dd.MM.yyyy" />
@code {
    DateTime? value;
}

Week numbers

Use the ShowWeekNumbers parameter to toggle the visibility of week numbers in the calendar view.

When enabled, a column will appear on the left side of each row in the calendar showing the corresponding week number.

<DatePicker TValue="DateTime?" ShowWeekNumbers="true" />

Month selection

Set InputMode to DateInputMode.Month to select a month and year. The selected value is normalized to the first day of the month.

Select the year heading to navigate through years and decades, then select an item to return through the views to the month grid.

<DatePicker TValue="DateTime?"
            @bind-Value="@selectedMonth"
            InputMode="DateInputMode.Month"
            DisplayFormat="MMMM yyyy"
            Placeholder="Select month..."
            ShowTodayButton />
@code {
    DateTime? selectedMonth;
}

Week selection

Set InputMode to DateInputMode.Week to select complete Monday-to-Sunday weeks. Week numbers are shown automatically in this mode.

Bound values are normalized to the Monday that starts the selected week. By default, the input displays week values such as 2026-41st.

Week mode supports single, range, and multiple selection. FirstDayOfWeek changes the visual order of the calendar; when Sunday is displayed first, a selected week continues into the following row.

<Field>
    <FieldLabel>Single week</FieldLabel>
    <FieldBody>
        <DatePicker TValue="DateTime?" @bind-Value="@selectedWeek" InputMode="DateInputMode.Week" Placeholder="Select week..." />
    </FieldBody>
</Field>
<Field>
    <FieldLabel>Week range</FieldLabel>
    <FieldBody>
        <DatePicker @bind-Value="@selectedWeekRange" InputMode="DateInputMode.Week" SelectionMode="DateInputSelectionMode.Range" Placeholder="Select week range..." />
    </FieldBody>
</Field>
<Field>
    <FieldLabel>Multiple weeks</FieldLabel>
    <FieldBody>
        <DatePicker @bind-Value="@selectedWeeks" InputMode="DateInputMode.Week" SelectionMode="DateInputSelectionMode.Multiple" Placeholder="Select weeks..." />
    </FieldBody>
</Field>
<Field>
    <FieldLabel>Sunday-first layout</FieldLabel>
    <FieldBody>
        <DatePicker TValue="DateTime?" @bind-Value="@sundayFirstWeek" InputMode="DateInputMode.Week" FirstDayOfWeek="DayOfWeek.Sunday" />
    </FieldBody>
</Field>
@code {
    DateTime? selectedWeek;
    IReadOnlyList<DateTime?> selectedWeekRange;
    IReadOnlyList<DateTime?> selectedWeeks;
    DateTime? sundayFirstWeek = new DateTime( 2026, 7, 15 );
}

Show buttons

Use the ShowTodayButton, or ShowClearButton parameters to toggle the visibility of the buttons in the calendar view.

When enabled, a row of buttons will appear at the bottom of the calendar allowing users to quickly navigate to today or clear the selected date.

<DatePicker TValue="DateTime?" ShowTodayButton ShowClearButton />

Default time

By default the time elements are set to 12:00. To change it use the DefaultHour and DefaultMinute parameters.

<DatePicker TValue="DateTime?" InputMode="DateInputMode.DateTime" DefaultHour="9" DefaultMinute="15" />

Formats

Display Format

DisplayFormat and InputFormat retain the .NET-style picker format syntax supported by earlier DatePicker versions. InputFormat is converted to the existing InputMask datetime format and used as the caret-aware typing mask. After the mask is completed, the committed value is presented using DisplayFormat.

For example, dd.MM.yyyy renders and accepts values such as 27.07.2026.

Display output and parsing preserve the format-token behavior from earlier DatePicker versions.

Best Practices

Date Format

Use a placeholder or helper to show how the input should be formatted. For example, "12/6/2020" represents different dates for Americans and Europeans.

Helpers are preferable to placeholders, as they are always visible. Fields with placeholders are also less noticeable than empty fields, so they are susceptible to being skipped. Use placeholders when space is limited, for example when Date Picker is used as a filter in a data grid header.

Format: DD/MM/YYYY
<Field>
    <FieldLabel>Start date</FieldLabel>
    <FieldBody>
        <DatePicker TValue="DateTime?" Placeholder="DD/MM/YYYY" />
    </FieldBody>
    <FieldHelp>Format: DD/MM/YYYY</FieldHelp>
</Field>

API

See the API reference for the parameters, events, methods, and related types available to the components covered on this page.

On this page