}>
  This course takes you from zero to a fully styled, accessible calendar with date range selection, time picking, and performance optimization.

## Lessons

[Introduction](/duck-calendar/course/01-introduction) - Why we built the engine and what problems it solves

[Adapter Pattern](/duck-calendar/course/02-adapter-pattern) - Understanding `Adapter.IDateAdapter<TDate>` and plugging in any date library

[Building a Grid](/duck-calendar/course/03-building-a-grid) - Using `buildCalendarMonth` to generate and render month grids

[Selection Modes](/duck-calendar/course/04-selection-modes) - Single, range, and multi-select with `useCalendar`

[Keyboard and Accessibility](/duck-calendar/course/05-keyboard-a11y) - WAI-ARIA grid pattern, roving tabIndex, and screen reader support

[Time Picker](/duck-calendar/course/06-time-picker) - `useTimePicker` and `useDateTime` for time input

[Styling](/duck-calendar/course/07-styling) - Data attributes, Tailwind, and plain CSS approaches

[Performance](/duck-calendar/course/08-performance) - Benchmarks, bundle analysis, and optimization strategies