Skip to content

Extras

FullCalendar

Bit.BlazorUI.ExtrasSchedulerEventCalendarPlanner

BitFullCalendar is a full-featured scheduling calendar: day, week, month, year, agenda and resource timeline views; recurring and all-day events; built-in create, edit and delete; drag-and-drop, resizing and range selection; business hours and booking rules; templates, keyboard navigation, theming, and culture-aware, right-to-left-ready rendering.

Notes

Ships in the Bit.BlazorUI.Extras(opens in a new tab) nuget package (see the Optional steps of Getting started).

Introduction

A complete scheduler: six layouts (day, week, month, year, agenda and a resource timeline), built-in create/edit/delete dialogs, drag-and-drop, resizing and range selection, recurring and all-day events, business hours and booking rules. It follows the Bit theme in light and dark mode, and every date grid is a single tab stop the arrow keys walk.

Usage

Every example is live. Open its code to see exactly what produced the component running underneath.

Basic

Pass Events. The month view opens first, the toolbar navigates and switches views, and a click on a day or an event opens the built-in add and details dialogs.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Views

Views sets which views are offered and in which order. Excluded views are unreachable, and a single view hides the tab strip.

Available views

Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Tech Conference
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
Quarterly Review
10:00 - 12:00
Product Demo
14:00 - 15:00
Team Standup
09:00 - 09:45
Design Review
10:00 - 11:00
Lunch with Client
12:00 - 13:30
Sprint Planning
14:00 - 15:30
Code Review
16:00 - 17:00
1:1 with Manager
10:30 - 11:15
05:11
Client Onboarding
10:00 - 11:30

Settings

Settings holds the preferences: time format, badge style, the hour the grid scrolls to, how overlapping events are laid out (EventLayout), and more. What the user changes from the settings gear is written back onto the same instance, so a re-render never reverts it, and OnSettingsChange reports it so whatever else reads that instance can re-render too.

Event layout

Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Tech Conference
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
1 AM
2 AM
3 AM
4 AM
5 AM
6 AM
7 AM
8 AM
9 AM
10 AM
11 AM
12 PM
1 PM
2 PM
3 PM
4 PM
5 PM
6 PM
7 PM
8 PM
9 PM
10 PM
11 PM
Quarterly Review
10:00 AM - 12:00 PM
Product Demo
2:00 PM - 3:00 PM
Team Standup
9:00 AM - 9:45 AM
Design Review
10:00 AM - 11:00 AM
Lunch with Client
12:00 PM - 1:30 PM
Sprint Planning
2:00 PM - 3:30 PM
Code Review
4:00 PM - 5:00 PM
1:1 with Manager
10:30 AM - 11:15 AM
5:11 AM
Client Onboarding
10:00 AM - 11:30 AM

Time grid

VisibleStartHour/VisibleEndHour narrow the day, week and timeline grids, and SlotDurationMinutes sets how each hour is split and what drags snap to. Press and drag down a column to create an event spanning a range (AllowRangeSelection).

Visible hours
Slot duration

Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Tech Conference
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
Quarterly Review
10:00 - 12:00
Product Demo
14:00 - 15:00
Team Standup
09:00 - 09:45
Design Review
10:00 - 11:00
Lunch with Client
12:00 - 13:30
Sprint Planning
14:00 - 15:30
Code Review
16:00 - 17:00
1:1 with Manager
10:30 - 11:15
Client Onboarding
10:00 - 11:30

Work week

HiddenDays removes weekdays from every date grid, FirstDayOfWeek overrides the culture's first day, and ShowWeekNumbers adds ISO-8601 week numbers. WeekDayCount shortens the week to a run of days from the selected one - three is the usual phone layout - and prev/next turn it by its length.

Days

Oct 19, 2026 - Oct 25, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Week 43
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
Quarterly Review
10:00 - 12:00
Product Demo
14:00 - 15:00
Team Standup
09:00 - 09:45
Design Review
10:00 - 11:00
Lunch with Client
12:00 - 13:30
Sprint Planning
14:00 - 15:30
Code Review
16:00 - 17:00
1:1 with Manager
10:30 - 11:15

Month grid

FixedWeekCount always draws six rows, ShowNonCurrentDates blanks the days borrowed from the neighbouring months, MaxEventsPerDayCell sets when the "+N more" link appears, and NavLinks turns day numbers, week headers and week numbers into links to that day or week.


October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

All-day events

IsAllDay takes an event off the hour axis into the all-day row above the day and week grids; its badge and details show the dates instead of a time.

Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Alice on leave
Company Holiday
All day
Release Freeze
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
Team Standup
09:00 - 09:30
Sprint Planning
14:00 - 15:30
05:11

Recurring events

A Recurrence repeats an event daily, weekly (on DaysOfWeek), monthly or yearly, every Interval units, ending after a Count, on an Until date, or never. WeekOfMonth lands it on "the third Tuesday"; ExceptionDates and AdditionalDates skip or add single dates. Only the visible range is expanded. The dialogs edit the rule too, and ask whether an edit means this occurrence or the whole series; dragging or resizing one occurrence moves it alone (its date is skipped on the series and OnChange reports that edit and the new one-off).

October 2026
S
M
T
W
T
F
S
Backup Check
08:00
Daily Standup
09:00
Sprint Review
15:00
Daily Standup
09:00
Daily Standup
09:00
Daily Standup
09:00
Daily Standup
09:00
Month-end Report
16:00

Event colors

EventColorOptions is the palette the dialogs, the color filter and the agenda's grouping offer; an event joins one through its Color id. A Color no option matches can be a CSS color of its own (#db2777, oklch(...)); anything else takes --bit-FullCalendar-event-color.

October 2026
S
M
T
W
T
F
S
Planning
09:00
Gym
17:00
Hotfix
11:00
Brand launch
13:00
Imported
10:00

Templates

DayEventTemplate, WeekEventTemplate, MonthEventTemplate and TimelineEventTemplate replace an event's content per layout; the calendar keeps its placement, color, accessible name and drag/resize. MonthCellTemplate adds to a month day (the holidays here) and AgendaEventTemplate replaces an agenda row (open the Agenda view). EventDetailsTemplate and EventEditorTemplate add your own part to the built-in dialogs - here a location kept in Data, which the editor's draft saves.

October 2026
S
M
T
W
T
F
S
📌 Quarterly Review
📌 Product Demo
📌 Team Standup
📌 Design Review
📌 1:1 with Manager
📌 Tech Conference
📌 Client Onboarding
📌 Tech Conference
📌 Architecture Review
🎉 Founders' Day
📌 Company Retreat

Resource timeline

Resources enables Timeline mode: rows are resources, columns are time. Events join a row through their Resource id, unmatched ones fall into "Unassigned", and dragging a block between rows reassigns it. ResourceTemplate replaces a row's header; TimelineEventTemplate its events.

October 2026
Resource
1 T
2 F
3 S
4 S
5 M
6 T
7 W
8 T
9 F
10 S
11 S
12 M
13 T
14 W
15 T
16 F
17 S
18 S
19 M
20 T
21 W
22 T
23 F
24 S
25 S
26 M
27 T
28 W
29 T
30 F
31 S
HQ - Bay Wing Headquarters
Design Review
10:00 - 11:00
Workshop
14:00 - 16:00
The Garden Headquarters
Standup
09:00 - 09:30
War Room (B1) Basement
Incident Bridge
13:00 - 15:00

Date bounds

MinDate and MaxDate fence in the reachable dates: prev/next disable at the edges, days outside are dimmed and inert, and a drag or save that would land outside is refused.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Allowed range: 2026-10-13 to 2026-11-12

Booking rules

AllowEventOverlap off prevents double booking; BusinessDays/BusinessStartHour/BusinessEndHour describe the working week, HighlightBusinessHours shades the rest and RestrictToBusinessHours enforces it. IsReadOnly freezes one event (the "Payroll run"). IsBackground draws an event as a band behind the grid (the offsite) and IsBlocking keeps everything out of it, overlaps allowed or not (the hatched daily lunch break). A refused drag or resize shows a notice, a refused save says why in the dialog, and every refusal raises OnRefused.


Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
Payroll run
09:00 - 10:00
Design Review
11:00 - 12:00
Retro
15:00 - 16:00

Last refusal: -

Read-only & permissions

ReadOnly removes the add affordances, dragging, resizing and the edit/delete actions; navigation, filtering and reading details keep working. Disabled takes the same path. To take away only part of it, turn off AllowAdd, AllowEdit, AllowDelete, AllowDrag or AllowResize in Settings - dragging and resizing are edits too, keyboard moves included.


Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Tech Conference
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
Quarterly Review
10:00 - 12:00
Product Demo
14:00 - 15:00
Team Standup
09:00 - 09:45
Design Review
10:00 - 11:00
Lunch with Client
12:00 - 13:30
Sprint Planning
14:00 - 15:30
Code Review
16:00 - 17:00
1:1 with Manager
10:30 - 11:15
05:11
Client Onboarding
10:00 - 11:30

OnChange & OnChanging

OnChange reports every add, edit and delete with the new and previous snapshots, the Kind and the Source (dialog, drag or resize) - apply it to your own store so it survives the next render. OnChanging comes first and can Cancel a change for rules only your app knows: the event goes back and the dialog stays open. Here, nothing may start in the past.


October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Last change: -

Binding

View, Mode and Date are two-way bound; OnViewChange, OnModeChange and OnDateChange report user-driven changes. DefaultView, DefaultMode and DefaultDate set the start without taking control.

View
Mode

Oct 18, 2026 - Oct 24, 2026
Weekly view is not recommended on smaller devices. Please switch to a desktop device or use the daily view instead.
Sun 18
Mon 19
Tue 20
Wed 21
Thu 22
Fri 23
Sat 24
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
Standup
09:00 - 09:30
Design Review
10:00 - 11:00
Incident Bridge
13:00 - 15:00
Workshop
14:00 - 16:00
05:11

View: Week | Mode: Event | Date: 2026-10-23
Last calendar event: Range 2026-10-18 → 2026-10-24 (Week)

Loading

OnDateChange fires on the first render and whenever the visible range moves - fetch that range there, and set IsLoading meanwhile: a progress bar runs across the top and the body is marked busy for screen readers, without blocking the calendar.

October 2026
S
M
T
W
T
F
S
Client call
09:00
Design sync
10:00
Hiring panel
11:00
Ops review
12:00
Customer demo
13:00
Client call
09:00
Design sync
10:00
Hiring panel
11:00
Ops review
12:00
Customer demo
13:00
Client call
09:00
Design sync
10:00
Hiring panel
11:00
Ops review
12:00
Customer demo
13:00
Client call
09:00
Design sync
10:00
Hiring panel
11:00
Ops review
12:00
Customer demo
13:00
Client call
09:00
Design sync
10:00

Loaded: 2026-10-01 → 2026-10-31 (22 events)

Custom toolbar

HideFilters, HideSettings and HideHeader trim the toolbar. Drive the calendar from your own chrome with GoToDate, GoToToday, NavigateNext, NavigatePrevious, ChangeView and ChangeMode, which obey the same date window and view set as the toolbar; ScrollToTimeAsync scrolls the day and week grids (and the timeline) to a time, and GetVisibleRange reads what is on screen.


October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Visible range: -

Localization

CultureName (or Culture) decides the calendar system, the names, the first day of the week and the direction - a right-to-left culture flips the layout on its own. Texts translates every string, including the accessible names. TimeProvider sets the clock "today" is read from - on Blazor Server, hand it the user's time zone. Here: Persian (fa-IR).

1405 آبان
ش
ی
د
س
چ
پ
ج
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Accessibility

AriaLabel names the calendar and makes it a page region. Tab reaches each grid once - a multi-day event once per week row - and the arrow keys walk it, on into the next month (Home/End; PageUp/PageDown turn the month, Shift the year). Enter or Space on a day or slot adds an event; Alt+Arrow moves and Shift+Arrow resizes a focused event. Escape closes any dialog, and the focus returns to the event even when a keyboard edit or a save redrew it. Dialog errors are tied to their fields; refusals, ranges and search results are announced.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

Cascading parameters

BitParams with a BitFullCalendarParams sets defaults for every calendar under it - here the views, a hidden filter bar and one shared Settings object (a preference changed in one calendar's gear reaches the other). A calendar's own value wins: the second one keeps the full set of views.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00 AM
Product Demo
2:00 PM
Team Standup
9:00 AM
Design Review
10:00 AM
1:1 with Manager
10:30 AM
Tech Conference
Client Onboarding
10:00 AM
Architecture Review
2:00 PM
Company Retreat
October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00 AM
Product Demo
2:00 PM
Team Standup
9:00 AM
Design Review
10:00 AM
1:1 with Manager
10:30 AM
Tech Conference
Client Onboarding
10:00 AM
Architecture Review
2:00 PM
Company Retreat

Style & Class

Style and Class reach the root; Styles and Classes reach each part: Root, Header, Body, Event (every event surface, beside its own CssClass) and Dialog.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

RTL

Dir="BitDir.Rtl" renders right-to-left - toolbar, chevrons, grids, dialogs and the timeline - and the arrow keys and resizing follow. Only needed when the direction differs from the culture's.

October 2026
S
M
T
W
T
F
S
Quarterly Review
10:00
Product Demo
14:00
Team Standup
09:00
Design Review
10:00
1:1 with Manager
10:30
Tech Conference
Client Onboarding
10:00
Architecture Review
14:00
Company Retreat

CSS variables

The public custom properties this component reads off its root, for what no parameter covers.

Every variable is read with a fallback and never declared by the component, so it inherits like any other custom property: set one on :root (or in a [bit-theme] block) to restyle every instance, on any ancestor to restyle the ones inside it, or on the Style of one instance to restyle it - and any instance nested inside it, which inherits the value too; a parameter changes one alone, as does the real CSS property on the instance's Style / Styles when that property does not inherit (opacity: 1 keeps one disabled instance undimmed without undimming a disabled one inside it), while an inherited one such as color or font-family also reaches the nested instances that do not set it themselves. Leave a variable unset and the component falls back to the theme token beside it.

BitFullCalendar CSS variables

Name Default value Description
--bit-FullCalendar-background var(--bit-clr-bg-pri) Surface of the calendar, its dialogs and popups.
--bit-FullCalendar-secondary-background var(--bit-clr-bg-sec) Secondary surfaces: the tab strips, the day-view sidebar, sticky group titles, the timeline gutter.
--bit-FullCalendar-hover-background var(--bit-clr-bg-pri-hover) Background of a hovered cell, slot, row or control.
--bit-FullCalendar-color var(--bit-clr-fg-pri) Text color.
--bit-FullCalendar-secondary-color var(--bit-clr-fg-sec) Secondary text: weekday headers, group titles, descriptions, and the placeholders of the search box and the event dialog's fields.
--bit-FullCalendar-muted-color var(--bit-clr-fg-ter) Muted text: hour labels, week numbers, days of the neighbouring months.
--bit-FullCalendar-border-color var(--bit-clr-brd-ter) Grid lines and the border of the calendar.
--bit-FullCalendar-control-border-color var(--bit-clr-brd-pri) Edges of the fields, selects, search box and switch tracks (kept at 3:1 against the surface).
--bit-FullCalendar-accent-color var(--bit-clr-pri) Accent: today's marker, the primary button, the selected choices, the focus outline of a slot.
--bit-FullCalendar-accent-hover-color var(--bit-clr-pri-hover) Accent of a hovered primary button.
--bit-FullCalendar-accent-text-color var(--bit-clr-pri-text) Text drawn on the accent color.
--bit-FullCalendar-event-color --bit-FullCalendar-accent-color Color of an event whose Color is neither a color option nor a CSS color. Its chip, swatch and bullet are derived from it.
--bit-FullCalendar-event-border-radius var(--bit-shp-radius-control) Corner radius of the event badges and blocks.
--bit-FullCalendar-background-event-opacity 0.16 How strongly a background event's color tints its band, from 0 to 1.
--bit-FullCalendar-today-background 6% accent Tint of today's column in the week grid.
--bit-FullCalendar-selection-background 22% accent The slots a range selection covers.
--bit-FullCalendar-off-hours-background 7% secondary text Shading outside the business hours (Settings.HighlightBusinessHours).
--bit-FullCalendar-now-indicator-color var(--bit-clr-err) The current-time line of the time grids and the timeline.
--bit-FullCalendar-border-radius var(--bit-shp-radius-surface) Corner radius of the calendar itself and of the year-view months.
--bit-FullCalendar-height 600px Height of the calendar. Use 100% inside a sized container.
--bit-FullCalendar-hour-height 96px Height of one hour of the day and week grids; events, the now line, scrolling and resizing follow it.
--bit-FullCalendar-time-gutter-width 3.75rem Width of the hour-label gutter beside the day and week grids.
--bit-FullCalendar-week-number-width 34px Width of the week-number rail of the month grid.
--bit-FullCalendar-month-cell-min-height 6.25rem Minimum height of a month-grid day.
--bit-FullCalendar-dialog-max-width 30rem Maximum width of the built-in dialogs.

API

Every parameter, public member, sub-class and enum this component exposes.

BitFullCalendar parameters

Name Type Default value Description
AgendaEventTemplate RenderFragment<BitFullCalendarEvent>? null Replaces the content of an event row in the agenda view and in the event lists ("+N more", a year-view day). The row stays the button that opens the event.
Classes BitFullCalendarClassStyles? null Custom CSS classes for the different parts of the calendar.
Culture CultureInfo? CultureInfo.CurrentUICulture Sets calendar/date rendering and formatting. Do not use with @rendermode="InteractiveServer" - use CultureName instead.
CultureName string? null Culture name shortcut (e.g. "fa-IR", "ar-SA", "fr-FR"). Takes precedence over Culture when both are supplied.
Date DateTime DateTime.Today The currently selected (anchor) date of the calendar that determines the visible date range. (two-way bound)
DayEventTemplate RenderFragment<BitFullCalendarEvent>? null Replaces the default event card content inside day-view time-grid blocks.
DefaultDate DateTime? null The default selected date used initially when the Date parameter is not set. Determines the date range shown on first render.
DefaultMode BitFullCalendarMode? null The default layout mode used initially when the Mode parameter is not set. Event shows the day/week/month/year/agenda views. Timeline shows a resources × time grid (requires Resources to be non-empty) and supports only the day, week, and month layouts - Year and Agenda fall back to the week layout in Timeline mode.
DefaultView BitFullCalendarView? null The default view used initially when the View parameter is not set. In Event mode any of Day, Week, Month, Year, or Agenda apply; in Timeline mode only Day, Week, and Month are supported (Year and Agenda fall back to the week layout).
EventColorOptions IReadOnlyList<BitFullCalendarColorOption>? null Ordered list of event colors shown in pickers, filters, agenda headers, badges, and bullets.
EventDetailsTemplate RenderFragment<BitFullCalendarEvent>? null Extra content for the built-in event details dialog, under the built-in rows.
EventEditorTemplate RenderFragment<BitFullCalendarEvent>? null Extra fields for the built-in add/edit dialog. It receives the draft, whose Data the save commits; assign a new Data rather than changing the object it starts with, so Cancel leaves the event as it was.
Events List<BitFullCalendarEvent>? null List of calendar events to display.
HideFilters bool false When true, hides the built-in color and attendee filter dropdowns. Consumers provide their own filter UI and pass pre-filtered events.
HideHeader bool false When true, the whole toolbar is removed - navigation, mode and view tabs, filters, the Add Event button, and the settings gear - so the calendar can be driven entirely from the consumer's own chrome through the bound View/Mode/Date parameters or the navigation methods.
HideSettings bool false When true, hides the built-in settings gear button. Settings can still be driven programmatically through the Settings parameter.
IsLoading bool false Runs an indeterminate progress bar across the top of the body and marks it busy for assistive technology, e.g. while the events of a range reported by OnDateChange are fetched.
MaxDate DateTime? null The latest date the calendar can navigate to and display. Navigation past it is refused, the next button is disabled, and a bound Date beyond it is pulled back.
MinDate DateTime? null The earliest date the calendar can navigate to and display. Navigation before it is refused, the previous button is disabled, and a bound Date before it is pulled forward. A window whose bounds are inverted is ignored.
Mode BitFullCalendarMode BitFullCalendarMode.Event The currently active layout mode of the calendar (Event or Timeline). Timeline requires Resources to be non-empty and only supports the Day, Week, and Month views (Year and Agenda fall back to the week layout). (two-way bound)
MonthCellTemplate RenderFragment<BitFullCalendarCell>? null Extra content for each day of the month grid, under the day number and above the events - a holiday, a price, an availability count.
MonthEventTemplate RenderFragment<BitFullCalendarEvent>? null Replaces the default event badge content inside month-view cells.
OnAddClick EventCallback<BitFullCalendarEvent?> When assigned, the built-in add dialog is suppressed. Receives a draft event with the start/end dates pre-filled from the calendar's selected date and configured start hour (or the clicked slot when adding from a time grid).
OnChange EventCallback<BitFullCalendarChangeEventArgs> Raised when a user adds, edits, or deletes an event (Kind: Add, Edit, Delete; Source: Dialog, Drag, Resize).
OnChanging EventCallback<BitFullCalendarChangingEventArgs> Raised before a user-driven add, edit or delete is committed (after the built-in rules pass). Set Cancel to refuse it: the event goes back, no OnChange is raised, and the add/edit dialog stays open.
OnDateChange EventCallback<BitFullCalendarDateChangeEventArgs> Raised on the first render - as the calendar initializes, and awaited, when it is prerendered, so the events fetched for it are in the prerendered page - and whenever the visible range moves (navigation, a view switch). Carries the inclusive Start/End and the active View - fetch that range here.
OnEventClick EventCallback<BitFullCalendarEvent> When assigned, the built-in event details dialog is suppressed when an event is clicked. Receives the clicked event.
OnModeChange EventCallback<BitFullCalendarMode> Raised when the active layout mode changes (switching between the Event and Timeline tabs).
OnRefused EventCallback<BitFullCalendarChangeRefusal> Raised when the calendar refuses a user-driven change, from a drag, a resize, their keyboard equivalents or a save of the built-in dialog: an overlap while Settings.AllowEventOverlap is false, an event marked IsBlocking in the way, a target outside the MinDate/MaxDate window or the business hours (Settings.RestrictToBusinessHours), or a change to what is read-only (the calendar, its edit permissions or an event marked IsReadOnly). A drag or resize also shows the reason as a notice, a dialog next to its actions; a change OnChanging cancels is not reported here.
OnSettingsChange EventCallback<BitFullCalendarSettings> Raised after the user changes a preference from the built-in settings panel, once the new values have been written back onto the Settings instance (which the callback receives).
OnViewChange EventCallback<BitFullCalendarView> Raised when the active view changes (selecting a view tab or navigating from the year overview into a month).
ReadOnly bool false When true, the calendar becomes presentation-only: the add button and per-cell add affordances are hidden, drag-and-drop and resizing are disabled, and the edit/delete actions are removed from the event details dialog. Navigation, view/mode switching, filtering, and reading event details keep working.
ResourceTemplate RenderFragment<BitFullCalendarResource>? null Replaces the title and subtitle in the header cell of a timeline resource row.
Resources IReadOnlyList<BitFullCalendarResource>? null Resources displayed as rows in Timeline mode. Each event's Resource property is matched against the resource Id. The Timeline mode tab is hidden when null or empty.
Settings BitFullCalendarSettings new() The preferences: time format, hour window, slot duration, hidden days, week numbers, business hours, booking rules, badge style, agenda grouping and event layout. Changes the user makes from the settings gear are written back onto it.
Styles BitFullCalendarClassStyles? null Custom CSS styles for the different parts of the calendar.
Texts BitFullCalendarTexts new() Custom UI strings for labels, placeholders, action buttons, aria labels, and validation messages.
TimeProvider TimeProvider? null The clock "now" and "today" are read from: the today marker, the current-time line, the Today button and the opening date. Defaults to TimeProvider.System, which on Blazor Server is the server's clock - pass one whose LocalTimeZone is the user's, or a fixed one for tests.
TimelineEventTemplate RenderFragment<BitFullCalendarEvent>? null Replaces the default event card content inside Timeline mode blocks.
View BitFullCalendarView BitFullCalendarView.Month The currently active view of the calendar (Day, Week, Month, Year, Agenda). In Timeline mode only Day, Week, and Month are supported (Year and Agenda fall back to the week layout). (two-way bound)
Views IReadOnlyList<BitFullCalendarView>? null The views the calendar offers, in the order the view tabs render them. When null or empty, every view (Day, Week, Month, Year, Agenda) is offered in that order; unknown and repeated entries are ignored. Excluded views are unreachable - the tabs omit them and View, DefaultView, and the indirect navigation paths are clamped into the list. The tab strip is hidden when a single view is left, and Timeline mode is unavailable when none of Day, Week, or Month is listed.
WeekEventTemplate RenderFragment<BitFullCalendarEvent>? null Replaces the default event card content inside week-view time-grid blocks.

BitFullCalendar public members

Name Type Default value Description
State BitFullCalendarState The live state: the active view, mode and date, the resolved settings and the event projections the views render from. Read it; drive the calendar through the parameters and the methods below.
GoToDate Action<DateTime> Moves the calendar to the supplied date, clamped into the MinDate/MaxDate window.
GoToToday Action Moves the calendar to today, clamped into the MinDate/MaxDate window.
NavigateNext Action Steps one period forward (a day, week, month or year, depending on the view). Does nothing past MaxDate.
NavigatePrevious Action Steps one period back. Does nothing before MinDate.
ChangeView Action<BitFullCalendarView> Switches the active view, clamped into Views and, in Timeline mode, into the layouts the timeline renders.
ChangeMode Action<BitFullCalendarMode> Switches the layout mode. Timeline falls back to Event while there is no resource or no timeline-capable view.
GetVisibleRange Func<(DateTime Start, DateTime End)> The inclusive start and end dates currently on screen.
ScrollToTimeAsync Func<TimeSpan, Task<bool>> Scrolls the day and week grids, or the day and week timeline, to a time (clamped into the visible hours). Returns false when the active view has no time axis.

BitComponentBase parameters

Name Type Default value Description
AriaLabel string? null Gets or sets the accessible label for the component, used by assistive technologies.
Class string? null Gets or sets the CSS class name(s) to apply to the rendered element.
Dir BitDir? null Gets or sets the text directionality for the component's content.
Disabled bool false Gets or sets a value indicating whether the component is disabled and cannot respond to user interaction.
ForceAnimation bool false Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested.
HtmlAttributes Dictionary<string, object> new Dictionary<string, object>() Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. An attribute written on the component wins over an entry of the same name.
Id string? null Gets or sets the unique identifier for the component's root element.
Style string? null Gets or sets the CSS style string to apply to the rendered element.
TabIndex string? null Gets or sets the tab order index for the component when navigating with the keyboard.
Visibility BitVisibility BitVisibility.Visible Gets or sets the visibility state (visible, hidden, or collapsed) of the component.

BitComponentBase public members

Name Type Default value Description
UniqueId Guid Guid.NewGuid() Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed.
RootElement ElementReference Gets the reference to the root HTML element associated with this component.

BitFullCalendarClassStyles properties

Custom CSS classes/styles for the different parts of the BitFullCalendar.

Name Type Default value Description
Root string? null Custom CSS classes/styles for the root element of the BitFullCalendar.
Header string? null Custom CSS classes/styles for the toolbar.
Body string? null Custom CSS classes/styles for the body that renders the active view.
Event string? null Custom CSS classes/styles for every event surface (month badges, day/week and timeline blocks, agenda rows), beside the event's own CssClass.
Dialog string? null Custom CSS classes/styles for the built-in dialogs.

BitFullCalendarEvent properties

Represents a single calendar event rendered across the day, week, month, year, agenda, and timeline views.

Name Type Default value Description
Id string string.Empty Unique identifier of the event.
Title string string.Empty Event title shown on the event card, badge, and dialogs.
Description string string.Empty Event description shown in the details and add/edit dialogs.
StartDate DateTime Start date and time of the event.
EndDate DateTime End date and time of the event.
Color string BitFullCalendarColorScheme.FallbackColorId Id of a BitFullCalendarColorOption from the configured palette, or - when no option matches - a CSS color of its own (a hex or a color function such as rgb(), hsl(), oklch(), var()). Anything else is drawn in --bit-FullCalendar-event-color.
Attendees List<BitFullCalendarAttendee> [] People attending the event.
Resource string? null Optional resource identifier linking this event to a BitFullCalendarResource. Used by the timeline view to place the event on the matching resource row. null or empty means the event is unassigned.
IsAllDay bool false Marks the event as lasting the whole day (or span of days) rather than a time range. It renders in the all-day row above the day and week time grids and its badge shows no clock time.
IsReadOnly bool false Locks this single event: it cannot be dragged, resized, edited, or deleted even while the calendar itself is editable. Reading its details keeps working.
IsBackground bool false Draws the event as a shaded band behind the grid (a lunch break, a holiday) instead of a card: never clicked, focused, dragged or listed, and not an overlap. The time grids and the timeline draw its range (on its Resource's row, or every row); the month grid tints the days it covers whole. Its title is spoken with the slots it covers.
IsBlocking bool false Keeps every other event out of this event's range - an add, move or resize overlapping it is refused as Blocked, even while overlaps are allowed. With a Resource it blocks that resource only. A blocking background band is hatched.
CssClass string? null Extra CSS class(es) applied to every element that renders this event - the month badge, the day/week block, the timeline block, and the agenda row.
Recurrence BitFullCalendarRecurrence? null Repeat rule that turns this event into a series master. The calendar expands it into occurrences across the visible range; the master itself is never rendered once it has one.
SeriesId string? null Set on a generated occurrence to the Id of the series master it came from. Null on every event a consumer supplied.
OccurrenceDate DateTime? null Set on a generated occurrence to the date it falls on, so a click handler can tell which one of a series the user picked.
IsOccurrence bool Read-only. True when this event was generated by expanding a recurrence rule.
IsSingleDay bool Read-only. True when the event starts and ends on the same date.
IsMultiDay bool Read-only. True when the event spans more than one date.
IsAllDayOrMultiDay bool Read-only. True when the event belongs in the all-day row: either it is marked IsAllDay or it spans more than one date.
Duration TimeSpan Read-only. The difference between EndDate and StartDate.
Data object? null Optional consumer-defined payload available to templates and click handlers.

BitFullCalendarRecurrence properties

The repeat rule of a recurring event. The event it sits on is the series master: it defines the first occurrence's date, time, and length, and every later occurrence repeats that same length. Recurrence is computed on the Gregorian calendar, independent of the culture the calendar renders in.

Name Type Default value Description
Frequency BitFullCalendarRecurrenceFrequency BitFullCalendarRecurrenceFrequency.Daily How often the event repeats.
Interval int 1 Number of frequency units between two occurrences - 2 with a weekly frequency means every other week. Values below 1 are treated as 1.
DaysOfWeek IReadOnlyList<DayOfWeek>? null Weekdays the series occurs on: every week for a weekly series, or on that week of the month for a monthly or yearly series with a WeekOfMonth. When null or empty the series follows the start date's own weekday. Ignored by the other frequencies.
WeekOfMonth BitFullCalendarWeekOfMonth? null Places a monthly or yearly series on a weekday of the month instead of the start date's day number - Third with DaysOfWeek set to Tuesday is the third Tuesday. A yearly series stays in the start date's month. Ignored by the other frequencies.
Count int? null Total number of occurrences the pattern produces, counting the first. Null leaves the series open-ended unless Until closes it; when both are set, whichever ends the series first wins.
Until DateTime? null Last date the pattern may occur on (inclusive). Null leaves the series open-ended unless Count closes it.
ExceptionDates IReadOnlyList<DateTime>? null Dates the series skips - a cancelled occurrence, a holiday. Only the date part is compared, a skipped date still counts against Count, and it also removes an AdditionalDates entry on the same date.
AdditionalDates IReadOnlyList<DateTime>? null Dates the series also occurs on outside its pattern - a make-up session. Each repeats the master's time of day and length, neither counts against Count nor stops at Until, and a date the pattern already produces is not doubled.

BitFullCalendarAttendee properties

Represents a person attending an event, shown in the event details and add/edit dialogs.

Name Type Default value Description
FirstName string string.Empty First name of the attendee.
LastName string string.Empty Last name of the attendee.
Id string? null Optional identifier of the attendee.
FullName string Read-only. The combined and trimmed first and last name.
Initials string Read-only. The uppercased initials derived from the first and last name.

BitFullCalendarColorOption properties

Describes one selectable event color shown in the picker, filters, agenda headers, badges, bullets, and swatches. Events reference a color through its Id.

Name Type Default value Description
Id string string.Empty Stable identifier of the color matched against BitFullCalendarEvent.Color (case-insensitive). Use a short, slug-style value such as "blue" or "skyblue".
Title string string.Empty Display label shown in pickers, filters, agenda headers, and event details. Used as-is with no localization.
Value string string.Empty CSS color value used for swatches, bullets, badge accents, and chip surfaces. Any valid CSS color such as hex, rgb(), hsl(), or a named color. Badge background, border, and text contrast tints are derived from this value at runtime.
Defaults static IReadOnlyList<BitFullCalendarColorOption> Built-in palette (blue, green, red, yellow, purple, orange) used when EventColorOptions is null or empty.

BitFullCalendarCell properties

One day of the month grid, as MonthCellTemplate receives it.

Name Type Default value Description
Day int 0 The day number in the active calendar system (a Persian date shows its own day).
CurrentMonth bool false True for a day of the month being shown; false for one borrowed from a neighbouring month.
Date DateTime The date of the day.

BitFullCalendarResource properties

A schedulable resource shown as a row in the resource timeline view (for example a meeting room, a person, or a piece of equipment). Events are linked to a resource through BitFullCalendarEvent.Resource matching Id.

Name Type Default value Description
Id string Required. Stable, non-blank identifier matched against BitFullCalendarEvent.Resource. Cannot be null, empty, or whitespace - a blank id is rejected at assignment time.
Title string string.Empty Display name for the resource (for example "Bay Wing", "Alice Johnson", "Meeting Room 3B").
Subtitle string? null Optional subtitle shown below the resource title (for example building or department).
Data object? null Optional consumer-defined payload available to templates and click handlers.

BitFullCalendarSettings properties

The preferences of the calendar. Every value is applied on first render and again whenever it changes; what the user changes from the settings gear is written back onto the same instance.

Name Type Default value Description
Use24HourFormat bool true Uses 24-hour time format instead of 12-hour (AM/PM).
BadgeVariant BitFullCalendarBadgeVariant BitFullCalendarBadgeVariant.Colored Badge display style in the month view.
StartOfDayHour int 8 Hour the day/week time grid scrolls to on first render. Clamped into the VisibleStartHour/VisibleEndHour window.
VisibleStartHour int 0 First hour rendered by the day, week, and timeline day/week time grids (0–23). Equivalent to slotMinTime in other calendar libraries.
VisibleEndHour int 24 Exclusive last hour rendered by the day, week, and timeline day/week time grids (1–24). Equivalent to slotMaxTime. A value at or below VisibleStartHour is corrected to one hour past it.
SlotDurationMinutes int 30 Length in minutes of one slot inside an hour, and the granularity drag-and-drop and resizing snap to. Only divisors of 60 are accepted (5, 6, 10, 12, 15, 20, 30, 60); other values round to the nearest accepted one.
HiddenDays IReadOnlyList<DayOfWeek>? null Days of the week removed from every date grid (week, month, year, and the timeline week layout). Use it to render a work week. A list that would hide every day is ignored.
BusinessDays IReadOnlyList<DayOfWeek>? null The weekdays business hours run on. null means Monday to Friday; an empty list means no day is a business day.
BusinessStartHour int 9 First hour of the business day (0–23).
BusinessEndHour int 17 Exclusive last hour of the business day (1–24). A value at or below BusinessStartHour is corrected to one hour past it.
HighlightBusinessHours bool false Shades everything outside the business hours - the off-hours slots of the day, week, and timeline grids and the non-business month cells. Also toggleable from the built-in settings panel.
RestrictToBusinessHours bool false Refuses any drag, resize, or dialog save whose resulting range is not fully contained in the business hours, reported as BitFullCalendarChangeRefusal.OutsideBusinessHours.
FixedWeekCount bool false Always renders six week rows in the month grid, so the calendar keeps the same height across months.
ShowNonCurrentDates bool true Renders the leading and trailing days the month grid borrows from the neighbouring months. When false those cells stay blank and inert.
NavLinks bool false Turns the month day numbers, the week-view column headers, and the month week numbers into links that navigate to the matching day or week view. A link whose target view is excluded by Views only selects the date.
FirstDayOfWeek DayOfWeek? null Overrides the day the week starts on. When null the active culture's DateTimeFormat.FirstDayOfWeek is used.
ShowWeekNumbers bool false Renders the ISO-8601 week number in the month grid and in the week view's time gutter.
ShowCurrentTimeIndicator bool true Renders the current time indicator line on the day and week time grids.
MaxEventsPerDayCell int 3 Number of event badges a month-grid cell renders before the rest collapse behind the "+N more" affordance. Clamped to 1–10.
RequireEventDescription bool false Makes the description field of the built-in add/edit dialog mandatory. Only the title is required by default.
AllowEventOverlap bool true Allows two events on the same resource to occupy the same time range. When false, a drag, resize, or dialog save that would create an overlap is refused.
AllowRangeSelection bool true Lets the user press and drag across the day or week time grid to select a range of slots, which opens the new event already spanning it. A plain click still creates a one-slot event.
WeekDayCount int? null Days the week view and the week timeline show (3 for a phone), starting at the selected date and skipping hidden days; prev/next turn by that length. null, or a value outside 1-6, is the culture's whole week.
AllowAdd bool true Lets the user create events: the Add Event button, the add affordance of every day and slot, and range selection.
AllowEdit bool true Lets the user change existing events: the Edit action of the details dialog and - since they are edits too - dragging and resizing.
AllowDelete bool true Lets the user delete events from the details dialog.
AllowDrag bool true Lets the user move events by dragging them or with Alt+Arrow keys, while AllowEdit is on.
AllowResize bool true Lets the user change how long events last by dragging their edges or with Shift+Arrow keys, while AllowEdit is on.
AgendaModeGroupBy BitFullCalendarAgendaGroupBy BitFullCalendarAgendaGroupBy.Date How events are grouped in the agenda view.
EventLayout BitFullCalendarEventLayout BitFullCalendarEventLayout.Overlap How overlapping event cards are positioned in the day and week views.
ShowDayViewCalendar bool true Renders the mini calendar shown in the day view sidebar.

BitFullCalendarChangeEventArgs properties

Provides details about a user-applied calendar event change, passed to the OnChange callback.

Name Type Default value Description
Event BitFullCalendarEvent The current event snapshot after the change for Add/Edit, or the removed event snapshot for Delete.
Kind BitFullCalendarChangeKind The change type that occurred (Add, Edit, Delete).
OldEvent BitFullCalendarEvent? null The event snapshot before the change for Edit/Delete. Null for Add.
Source BitFullCalendarChangeSource The UI source that triggered this change (Dialog, Drag, Resize).

BitFullCalendarChangingEventArgs properties

A user-driven change about to be committed, passed to the OnChanging callback.

Name Type Default value Description
Event BitFullCalendarEvent The event as the change would leave it for Add/Edit, or the event about to be removed for Delete.
Kind BitFullCalendarChangeKind The kind of change (Add, Edit, Delete).
OldEvent BitFullCalendarEvent? null The event before the change for Edit/Delete. Null for Add.
Source BitFullCalendarChangeSource The UI source (Dialog, Drag, Resize).
Cancel bool false Set to true to refuse the change.

BitFullCalendarDateChangeEventArgs properties

Provides details about a date range change, fired when the user navigates (prev/next/today) or switches views. Passed to the OnDateChange callback.

Name Type Default value Description
Start DateTime Start of the visible date range (inclusive).
End DateTime End of the visible date range (inclusive).
View BitFullCalendarView The active calendar view when the change occurred.

BitFullCalendarTexts properties

Custom UI strings for labels, placeholders, action buttons, aria labels, and validation messages. Used for localization and customization of all built-in text.

Name Type Default value Description
ViewDay string "Day" Label for the day view tab.
ViewWeek string "Week" Label for the week view tab.
ViewMonth string "Month" Label for the month view tab.
ViewYear string "Year" Label for the year view tab.
ViewAgenda string "Agenda" Label for the agenda view tab.
ModeEvent string "Events" Label for the event mode tab.
ModeTimeline string "Timeline" Label for the timeline mode tab.
ViewTabsAriaLabel string "Views" Accessible name of the view tab strip.
ModeTabsAriaLabel string "Modes" Accessible name of the mode tab strip.
TodayButton string "Today" Label for the today navigation button.
AddEventButton string "Add Event" Label for the add event button.
AddEventHoverHint string "Add event" Tooltip shown when hovering the add event affordance.
PreviousButtonTitle string "Previous" Title for the previous navigation button.
NextButtonTitle string "Next" Title for the next navigation button.
PreviousMonthAriaLabel string "Previous month" Aria label for the mini calendar previous month navigation button.
NextMonthAriaLabel string "Next month" Aria label for the mini calendar next month navigation button.
SettingsButtonTitle string "Settings" Title for the settings gear button.
FilterByColorAriaLabel string "Filter events by color" Aria label for the color filter dropdown.
FilterByPersonAriaLabel string "Filter events by person in current view" Aria label for the attendee filter dropdown.
AllColorsOption string "All colors" Option text for clearing the color filter.
AllPeopleOption string "All people" Option text for clearing the attendee filter.
UnnamedAttendee string "(Unnamed)" Fallback text for an attendee with no name.
CalendarSettingsLabel string "Calendar settings" Heading for the settings panel.
DotBadgeLabel string "Dot badge" Label for the dot badge setting toggle.
TwentyFourHourFormatLabel string "24-hour format" Label for the 24-hour format setting toggle.
DayStartsAtLabel string "Day starts at" Label for the day start hour setting.
HourSuffix string "h" Suffix appended to hour values in the settings.
AgendaGroupByLabel string "Agenda group by" Label for the agenda grouping setting.
AgendaGroupByDate string "Date" Option text for grouping the agenda by date.
AgendaGroupByColor string "Color" Option text for grouping the agenda by color.
StackedEventsLabel string "Stack overlapping events" Label for the overlapping events layout toggle.
ShowDayViewCalendarLabel string "Show calendar in day view" Label for the day view mini calendar toggle.
ShowWeekNumbersLabel string "Show week numbers" Label for the week numbers setting toggle.
ShowCurrentTimeIndicatorLabel string "Show current time" Label for the current time indicator setting toggle.
SlotDurationLabel string "Slot duration" Label for the slot duration setting.
MinuteSuffix string "min" Suffix appended to minute values in the settings.
WeekMobileWarning string "Weekly view is not recommended..." Warning shown when using the week view on small devices.
HappeningNowTitle string "Happening now" Title for the happening-now indicator.
NoAppointmentsNow string "No appointments at the moment" Text shown when there are no current appointments.
SearchEventsPlaceholder string "Search events..." Placeholder for the agenda search box.
NoEventsFound string "No events found." Text shown when a search returns no events.
EventListTitleFormat string "Events on {0}" Format template for the event list dialog title; {0} is the formatted date.
EventListCountFormat string "{0} event(s)" Format template for the event count in the event list dialog; {0} is the count.
MoreEventsFormat string "+{0} more" Format template for the "+N more" affordance in month cells; {0} is the hidden-event count.
AddEventDialogTitle string "Add New Event" Title for the add event dialog.
EditEventDialogTitle string "Edit Event" Title for the edit event dialog.
AddEventDialogSubtitle string "Create a new event for your calendar." Subtitle for the add event dialog.
EditEventDialogSubtitle string "Modify your existing event." Subtitle for the edit event dialog.
CloseAriaLabel string "Close" Aria label for the dialog close button.
CloseButton string "Close" Label for the close button.
CancelButton string "Cancel" Label for the cancel button.
EditButton string "Edit" Label for the edit button.
DeleteButton string "Delete" Label for the delete button.
CreateEventButton string "Create Event" Label for the create event button.
SaveChangesButton string "Save Changes" Label for the save changes button.
TitleLabel string "Title" Label for the event title field.
EventTitlePlaceholder string "Event title" Placeholder for the event title field.
StartDateTimeLabel string "Start Date & Time" Label for the start date and time field.
EndDateTimeLabel string "End Date & Time" Label for the end date and time field.
ColorLabel string "Color" Label for the color field.
EventColorAriaLabel string "Event color" Aria label for the color picker.
DescriptionLabel string "Description" Label for the description field.
EventDescriptionPlaceholder string "Event description" Placeholder for the description field.
AttendeesLabel string "Attendees" Label for the attendees field.
NoAttendeesText string "No attendees" Text shown when an event has no attendees.
FirstNamePlaceholder string "First name" Placeholder for the attendee first name field.
LastNamePlaceholder string "Last name" Placeholder for the attendee last name field.
IdOptionalPlaceholder string "ID (optional)" Placeholder for the optional attendee id field.
AddButton string "Add" Label for the add attendee button.
RemoveAttendeeAriaLabel string "Remove attendee" Aria label for the remove attendee button on an attendee chip.
StartDateLabel string "Start Date" Label for the start date in the event details.
EndDateLabel string "End Date" Label for the end date in the event details.
AtWord string "at" Connector word between date and time in the event details.
AllDayLabel string "All day" Label of the all-day switch in the add/edit dialog, and of an all-day event's badge and details.
WeekNumberFormat string "W{0}" Format template of the week-number cell; {0} is the ISO-8601 week number.
WeekNumberAriaLabelFormat string "Week {0}" Accessible name of a week-number cell; {0} is the ISO-8601 week number.
EventOverlapMessage string "This time range is already taken on that resource." Notice shown when a move, resize, or save is refused because it would overlap another event.
OutOfRangeMessage string "That date is outside the allowed range." Notice shown when a move or resize is refused because it falls outside the allowed date range.
OutsideBusinessHoursMessage string "That time is outside business hours." Notice shown when a move, resize, or save is refused because it falls outside the business hours.
BlockedMessage string "That time is unavailable." Notice shown when a move, resize, or save is refused because it overlaps a blocking event.
HighlightBusinessHoursLabel string "Highlight business hours" Label for the business-hours toggle in the settings panel.
NavLinkDayAriaLabelFormat string "Go to {0}" Accessible name of a day number or column header that navigates to that day; {0} is the formatted date.
NavLinkWeekAriaLabelFormat string "Go to week {0}" Accessible name of a week number that navigates to that week; {0} is the ISO-8601 week number.
ValidationTitleRequired string "Title is required" Validation message when the title is empty.
ValidationDescriptionRequired string "Description is required" Validation message when the description is empty.
ValidationEndAfterStart string "End date must be after start date" Validation message when the end date is not after the start date.
ValidationAttendeeNameRequired string "First name or last name is required" Validation message when an attendee has no name.
ResizePreviewAriaLabel string "New time range" Aria label for the resize preview indicator.
RepeatsLabel string "Repeats" Label of the repeat-rule row in the event details dialog.
RepeatsDaily string "Daily" Name of a daily repeat rule.
RepeatsWeekly string "Weekly" Name of a weekly repeat rule.
RepeatsMonthly string "Monthly" Name of a monthly repeat rule.
RepeatsYearly string "Yearly" Name of a yearly repeat rule.
RepeatsIntervalFormat string "every {0}" Appended to the frequency when the rule repeats every N units; {0} is the interval.
RepeatsCountFormat string "{0} times" Appended when the series is closed by a number of occurrences; {0} is the count.
RepeatsUntilFormat string "until {0}" Appended when the series is closed by a date; {0} is the formatted date.
RepeatsOnDaysFormat string "on {0}" Appended when a weekly series names its weekdays; {0} is the abbreviated weekday names joined with ListSeparator.
RepeatsOnWeekOfMonthFormat string "on the {0} {1}" Appended when a monthly or yearly series lands on a weekday of the month; {0} is the week of the month, {1} the weekday names.
ListSeparator string ", " Separator between the items of a list in a summary, such as weekday names.
WeekOfMonthFirst string "first" Name of BitFullCalendarWeekOfMonth.First.
WeekOfMonthSecond string "second" Name of BitFullCalendarWeekOfMonth.Second.
WeekOfMonthThird string "third" Name of BitFullCalendarWeekOfMonth.Third.
WeekOfMonthFourth string "fourth" Name of BitFullCalendarWeekOfMonth.Fourth.
WeekOfMonthLast string "last" Name of BitFullCalendarWeekOfMonth.Last.
RepeatLabel string "Repeat" Label of the repeat picker in the add/edit dialog.
DoesNotRepeatOption string "Does not repeat" The repeat picker's option for a one-off event.
RepeatEveryLabel string "Repeat every" Label of the interval field in the add/edit dialog.
RepeatDaysUnit string "day(s)" Unit shown after the interval of a daily series.
RepeatWeeksUnit string "week(s)" Unit shown after the interval of a weekly series.
RepeatMonthsUnit string "month(s)" Unit shown after the interval of a monthly series.
RepeatYearsUnit string "year(s)" Unit shown after the interval of a yearly series.
RepeatOnLabel string "Repeat on" Label of the weekday and day-of-the-month choices in the add/edit dialog.
RepeatOnDayOfMonthFormat string "Day {0}" The option that keeps a monthly series on the start date's day number; {0} is that day.
RepeatOnWeekOfMonthFormat string "The {0}" The option that moves a monthly or yearly series onto a weekday of the month; {0} is the week of the month. The weekdays are picked beside it.
EndsLabel string "Ends" Label of the field that decides when a series ends.
EndsNeverOption string "Never" The option for an open-ended series.
EndsOnDateOption string "On date" The option for a series that ends on a date.
EndsAfterOption string "After" The option for a series that ends after a number of occurrences.
OccurrencesLabel string "occurrence(s)" Shown after the occurrence count of a series that ends after a number of occurrences.
RepeatExceptionsLabel string "Exceptions" Label of the skipped and added dates of a series in the add/edit dialog.
SkipDateButton string "Skip date" Button that adds the picked date to the dates a series skips.
AddDateButton string "Add date" Button that adds the picked date to the dates a series also occurs on.
SkippedDatesLabel string "Skipped" Caption of the dates a series skips.
AddedDatesLabel string "Added" Caption of the dates a series also occurs on.
RemoveDateAriaLabel string "Remove date" Accessible name of the button that removes a skipped or added date.
ValidationRepeatAtLeastOne string "Must be at least 1" Validation message when an interval or an occurrence count is below 1.
ValidationUntilBeforeStart string "The series cannot end before it starts" Validation message when a series is set to end before it starts.
RecurringEditTitle string "Edit recurring event" Title of the prompt that asks whether an edit applies to one occurrence or the series.
RecurringDeleteTitle string "Delete recurring event" Title of the prompt that asks whether a delete applies to one occurrence or the series.
ThisOccurrenceOption string "This event" The choice that applies an edit or delete to the opened occurrence only.
AllOccurrencesOption string "All events in the series" The choice that applies an edit or delete to the whole series.
OkButton string "OK" Label of the button that confirms a prompt.
GetWeekOfMonthLabel(BitFullCalendarWeekOfMonth) string Method that returns the localized name of a week of the month.
GetRecurrenceSummary(BitFullCalendarRecurrence, CultureInfo?, DateTime?) string Method that returns the one-line repeat summary shown in the event details dialog. Pass the master's start so a rule that names no weekday can still be described.
ResourceLabel string "Resource" Label for the resource field in the add/edit dialog.
ResourceColumnHeader string "Resource" Header for the resource column in the timeline view.
NoResourceLabel string "Unassigned" Label for events not assigned to a resource.
NoResourceOption string "(none)" Option text for clearing the resource assignment.
NoResourcesMessage string "No resources to display." Message shown when there are no resources in the timeline view.
GetViewLabel(BitFullCalendarView) string Method that returns the localized label for the given view.
GetModeLabel(BitFullCalendarMode) string Method that returns the localized label for the given mode.

BitFullCalendarMode enum

Name Value Description
Event 0 Day, week, month, year, and agenda views on a date grid.
Timeline 1 Resource-centric layout (resources × time grid); requires Resources. Supports only the day, week, and month layouts.

BitFullCalendarView enum

Name Value Description
Day 0 Single-day detailed view.
Week 1 7-day view with hourly time slots.
Month 2 Month grid with multi-day events.
Year 3 12-month overview. Event mode only - falls back to the week layout in Timeline mode.
Agenda 4 Searchable list grouped by date or color. Event mode only - falls back to the week layout in Timeline mode.

BitFullCalendarBadgeVariant enum

Name Value Description
Colored 0 Colored badge.
Dot 1 Colored dot bullet.

BitFullCalendarAgendaGroupBy enum

Name Value Description
Date 0 Group agenda items by date.
Color 1 Group agenda items by color.

BitFullCalendarEventLayout enum

Name Value Description
Overlap 0 Overlapping cards cascade on top of each other, each offset to the right and extending to the column edge.
Stack 1 Overlapping cards are placed side by side in equal-width columns with no overlap.

BitFullCalendarChangeKind enum

Name Value Description
Add 0 An event was added.
Edit 1 An event was edited.
Delete 2 An event was deleted.

BitFullCalendarChangeSource enum

Name Value Description
Dialog 0 From the add/edit dialog.
Drag 1 From a drag-and-drop move.
Resize 2 From resizing an event block.

BitFullCalendarRecurrenceFrequency enum

Name Value Description
Daily 0 Repeats every Interval days.
Weekly 1 Repeats every Interval weeks, on the weekdays listed in DaysOfWeek (the start date's own weekday when none are listed).
Monthly 2 Repeats every Interval months on the start date's day of the month. A month too short for that day is skipped rather than shifted. With WeekOfMonth set it repeats on a weekday of the month instead (the third Tuesday).
Yearly 3 Repeats every Interval years on the start date's month and day. A 29 February series only occurs in leap years. With WeekOfMonth set it repeats on a weekday of the start date's month instead (the fourth Thursday of November).

BitFullCalendarWeekOfMonth enum

Name Value Description
First 0 The first such weekday of the month (days 1 to 7).
Second 1 The second such weekday of the month (days 8 to 14).
Third 2 The third such weekday of the month (days 15 to 21).
Fourth 3 The fourth such weekday of the month (days 22 to 28).
Last 4 The last such weekday of the month, whether that is its fourth or its fifth.

BitFullCalendarChangeRefusal enum

Name Value Description
None 0 The change was applied (or there was nothing to apply).
ReadOnly 1 The calendar, the single event, or the edit permissions (Settings.AllowEdit / AllowDrag / AllowResize) do not allow the change, so nothing was changed.
Overlap 2 The resulting range would overlap another event on the same resource while Settings.AllowEventOverlap is false.
OutOfRange 3 The resulting range falls outside the MinDate/MaxDate window the calendar is allowed to show.
OutsideBusinessHours 4 The resulting range is not fully contained in the business hours while Settings.RestrictToBusinessHours is true.
Blocked 5 The resulting range would overlap an event marked IsBlocking on the same resource (or one blocking every resource).

BitVisibility enum

Name Value Description
Visible 0 The content of the component is visible.
Hidden 1 The content of the component is hidden, but the space it takes on the page remains (visibility:hidden).
Collapsed 2 The component is hidden (display:none).

BitDir enum

Name Value Description
Ltr 0 Ltr (left to right) is to be used for languages that are written from the left to the right (like English).
Rtl 1 Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic).
Auto 2 Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element.

Feedback

Found a mistake, a gap, or something that could be clearer? Every page and every component is one click from its source.