Lumeo

Scheduler

A calendar & event scheduler with month, week, day, and list views. Drag events to reschedule, resize to change duration, or drag across the grid to create new ones.

Installation

dotnet add package Lumeo.Scheduler

One-time app setup (AddLumeo(), CSS & JS) is covered in the installation guide.

Usage

@using Lumeo

<Scheduler />

When to Use

  • Displaying appointments, meetings, shifts, or any time-based event grid.
  • Giving users direct manipulation controls — drag to reschedule, drag-to-select to create.
  • Switching between month overviews and focused day/week planning within the same view.
June 2026
Week of

Drag across the calendar grid to pick a time range — a dialog will ask for a title.

Week of

Drag an event to move it. The component emits OnEventChange and updates the bound collection.

Week of
Last change
Drag an event to see it here.

Events with DaysOfWeek repeat on the selected days. Use RecurrenceEnd to bound the series and ExceptionDates to skip specific occurrences. This uses FullCalendar's free simple recurrence model — no premium plugin required.

Week of

Provide a Resources list and set ResourceId on each event to automatically color-code events by resource and render a legend above the calendar. This does NOT require the FullCalendar Premium resource plugin.

Week of
Alice Chen
Bob Kim
Carol Wu

API Reference

Scheduler

Prop Type Default Description
EventsIEnumerable<SchedulerEvent>?nullThe events to render. Use with @bind-Events for two-way binding.
EventsChangedEventCallback<IEnumerable<SchedulerEvent>>Fires with the updated collection after the user drags or resizes an event.
InitialViewSchedulerViewMonthWhich view to show on first render. Values: Month, Week, Day, List.
InitialDateDateTime?todayAnchor date the calendar centers on at mount.
EditablebooltrueWhen true the user can drag events to move/resize them.
SelectablebooltrueWhen true the user can drag-select a range to create a new event.
BusinessHoursboolfalseShade Mon–Fri, 9–5 as business hours in time-grid views.
Heightstring"640px"CSS height for the calendar canvas (the toolbar sits above it).
FirstDayOfWeekint1First visible day of the week. 0 = Sunday, 1 = Monday, … 6 = Saturday.
OnEventClickEventCallback<SchedulerEvent>Fires when the user clicks an event.
OnDateSelectEventCallback<SchedulerDateRange>Fires when the user drag-selects a range — typical usage is to open a "new event" dialog.
OnEventChangeEventCallback<SchedulerEvent>Fires with the updated event after a drag or resize completes.
NowIndicatorbooltrueShow the current-time line in time-grid views. Maps to FullCalendar's nowIndicator.
SlotMinTimeTimeOnly?nullEarliest visible time in time-grid views (e.g. new TimeOnly(7,0)). Null = FullCalendar default (midnight).
SlotMaxTimeTimeOnly?nullLatest visible time in time-grid views. Null = FullCalendar default (midnight next day).
SlotDurationTimeSpan?nullDuration of each slot row, e.g. TimeSpan.FromMinutes(15). Null = FullCalendar default (30 min).
ResourcesIReadOnlyList<SchedulerResource>?nullResource list for color-coding events by person/room. A legend is rendered above the calendar. Does not require FullCalendar Premium.
EventClassNamesFunc<SchedulerEvent, string>?nullCallback returning extra CSS class names for an event chip.
EventColorFunc<SchedulerEvent, string>?nullCallback returning a CSS color for an event. Priority: callback > event.Color > resource color.
Classstring?nullAdditional CSS classes applied to the outer wrapper.
AdditionalAttributesDictionary<string, object>?nullAdditional HTML attributes.

SchedulerEvent

Field Type Description
IdstringStable identifier used to reconcile edits back into the caller's collection.
TitlestringThe label rendered on the event chip.
StartDateTimeStart timestamp (inclusive).
EndDateTimeEnd timestamp (exclusive, per FullCalendar convention).
AllDayboolWhen true the event is rendered in the all-day lane.
Colorstring?CSS color or variable reference like "var(--color-primary)".
Urlstring?Optional link opened on click instead of firing OnEventClick.
ExtendedPropsDictionary<string, object>?Arbitrary app-level metadata round-tripped through the JS layer.
DaysOfWeekIReadOnlyList<DayOfWeek>?Recurring: days of the week on which the event repeats. Uses FullCalendar's free simple recurrence model. When set, Start/End provide the time-of-day only.
RecurrenceEndDateTime?Recurring: last date on which the event appears. Only meaningful when DaysOfWeek is set.
ExceptionDatesIReadOnlyList<DateTime>?Recurring: specific dates to skip (one-off exclusions). Only meaningful when DaysOfWeek is set.
ResourceIdstring?Matches this event to a SchedulerResource for color-coding when the Scheduler has a Resources list.
ClassNamesstring?Extra CSS class names applied directly to this event's chip (space-separated).

SchedulerResource

Field Type Description
IdstringIdentifier matched against SchedulerEvent.ResourceId.
TitlestringDisplay name shown in the resource legend.
Colorstring?CSS color applied to events belonging to this resource when the event has no explicit color.

SchedulerDateRange

Field Type Description
StartDateTimeRange start timestamp.
EndDateTimeRange end timestamp (exclusive).
AllDayboolTrue when the user selected whole days in a day-grid.

SchedulerView

Value Description
MonthDay-grid month view — best for an at-a-glance overview.
WeekTime-grid week view with hourly rows.
DayTime-grid single-day view.
ListAgenda-style list of the current week's events.
  • Calendar — picker-only date grid without events.
  • DatePicker — single-date input with a calendar dropdown.