Calendar Component Samples

The Calendar control displays a one-month calendar and lets users select dates and navigate between months. In Web Forms this was <asp:Calendar>.


Basic Calendar

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Selected Date: 09/07/2026

Code:

<Calendar @bind-SelectedDate="selectedDate" />

Selection Modes

None — Display Only

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Day — Single Day (Default)

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Selected: 09/07/2026

DayWeek — Select Entire Weeks

<September 2026>
SunMonTueWedThuFriSat
>>303112345
>>6789101112
>>13141516171819
>>20212223242526
>>27282930123
>>45678910

Selected: 09/07/2026

DayWeekMonth — Select Weeks or Month

>>
<September 2026>
SunMonTueWedThuFriSat
>>303112345
>>6789101112
>>13141516171819
>>20212223242526
>>27282930123
>>45678910

Selected: 09/07/2026

Code:

<Calendar SelectionMode="DayWeek" @bind-SelectedDate="weekDate" />
<Calendar SelectionMode="DayWeekMonth" @bind-SelectedDate="monthDate" />

Display Options

Grid Lines

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Without Title

SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Without Day Header

<September 2026>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Code:

<Calendar ShowGridLines="true" />
<Calendar ShowTitle="false" />
<Calendar ShowDayHeader="false" />

Day Name & Title Formats

Full Day Names

<September 2026>
SundayMondayTuesdayWednesdayThursdayFridaySaturday
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

First Letter Only

<September 2026>
SMTWTFS
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Month-Only Title

<September>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Code:

<Calendar DayNameFormat="Full" />
<Calendar DayNameFormat="FirstLetter" />
<Calendar TitleFormat="Month" />

Custom Navigation Text

« PrevSeptember 2026Next »
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Code:

<Calendar NextMonthText="Next &raquo;" PrevMonthText="&laquo; Prev" />

Styled Calendar

Apply CSS classes to title, selected day, today, and weekend cells:

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Code:

<Calendar CssClass="styled-calendar"
          TitleStyleCss="calendar-title"
          SelectedDayStyleCss="selected-day"
          TodayDayStyleCss="today-day"
          ShowGridLines="true" />

TableItemStyle Sub-Components

The recommended approach uses child sub-components instead of CSS-class strings. Sub-components support BackColor, ForeColor, Font, and more:

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Code:

<Calendar ShowGridLines="true" @bind-SelectedDate="date">
    <TitleStyleContent>
        <CalendarTitleStyle CssClass="subcmp-title" />
    </TitleStyleContent>
    <DayHeaderStyleContent>
        <CalendarDayHeaderStyle CssClass="subcmp-day-header" />
    </DayHeaderStyleContent>
    <SelectedDayStyleContent>
        <CalendarSelectedDayStyle CssClass="subcmp-selected-day" />
    </SelectedDayStyleContent>
</Calendar>

TodaysDate Override

The TodaysDate property overrides which date the calendar considers "today". This is useful for testing or displaying a calendar anchored to a specific date.

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Calendar thinks today is: 12/25/2025

<Calendar TodaysDate="@(new DateTime(2025, 12, 25))" />

Event Handling

Track selection changes and month navigation, matching the Web Forms SelectionChanged and VisibleMonthChanged events:

<September 2026>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Selected: 09/07/2026

Selection changed 0 time(s)

Month navigated 0 time(s)

Code:

<Calendar @bind-SelectedDate="eventDate"
          OnSelectionChanged="HandleSelectionChanged"
          OnVisibleMonthChanged="HandleMonthChanged" />

@code {
    void HandleSelectionChanged() => selectionChangedCount++;
    void HandleMonthChanged(CalendarMonthChangedArgs args) => monthChangedCount++;
}