syncfusion-react-calendars

Comprehensive guide for implementing Syncfusion React Calendar components including Calendar, DatePicker, DateRangePicker, DateTimePicker, and TimePicker. Covers installation, data binding, date/time selection, range selection, formatting, localization, masking, validation, customization, templates,

By syncfusion · 439 installs

npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-calendars

Source repository · Upstream listing

Implementing Syncfusion React Calendars Calendar The Syncfusion React CalendarComponent is a highly customizable calendar UI control that allows users to select single or multiple dates. It supports multiple views (Month, Year, Decade), navigation, week numbers, disabled dates, custom day cell rendering, localization, RTL support, and full accessibility (WCAG 2.2 compliant). Quick Start (React) Install Basic Example (App.jsx) Notes: Use the change event to sync selected date to React state. Import theme CSS once (global or component level) to style the control. Guidance & Patterns Controlled component: keep source of truth in React state and update value via change event. Multi selection: use isMultiSelection={true} with values prop and addDate() / removeDate() methods. Programmatic navigation: use a ref to call navigateTo(view, date) — both arguments are required (see references/getting started react.md). Date ranges: for range selection, use DateRangePicker (separate component). The Calendar itself does not have a built in range highlight mode. Accessibility: use wrapper elements with role="region" and a separate aria live region for announcements — these are not direct Calendar props. Week numbers: enable with weekNumber={true} (the correct prop name). References Navigate to the reference that matches your current task: Getting Started 📄 Read: [references/getting started react.md](references/calendar getting started react.md) Installation and npm setup React component examples CSS/theme imports Using refs and methods Date Selection 📄 Read: [references/date selection.md](references/calendar date selection.md) Single date selection Multiple dates and ranges Min/max constraints Disabling specific dates Calendar Views 📄 Read: [references/calendar views.md](references/calendar calendar views.md) Month, Year, Decade views Navigating between views Initial and depth controls Programmatic navigation Styling & Customization 📄 Read: [references/styling customization.md](references/calendar styling customization.md) Theme selection and switching CSS class customization Custom day cell rendering RTL and responsive design Events & Methods 📄 Read: [references/events methods.md](references/calendar events methods.md) Event handlers (change, created, renderDayCell) Using refs and imperative methods Advanced renderDayCell hook Event tracking patterns Accessibility & Globalization 📄 Read: [references/accessibility globalization.md](references/calendar accessibility globalization.md) WCAG 2.1 compliance Keyboard navigation ARIA attributes Locale support and RTL Testing for accessibility API Reference (Quick Lookup) 📄 Read: [references/api reference.md](references/calendar api reference.md) Props, events, methods at a glance Common enums and types Link to upstream docs Troubleshooting & Tips Styles not applied: confirm CSS imports point to node modules/@syncfusion/ej2 calendars/styles/ and are loaded before component styles. React state mismatch: use the value prop and change event to keep React state in sync — do not rely on framework specific bindings. Multiple date selection not working: ensure isMultiSelection={true} and use values (not value ) for the initial array. navigateTo not working: the method requires two arguments — navigateTo(view: CalendarView, date: Date) . "Cannot find module": run npm install @syncfusion/ej2 react calendars @syncfusion/ej2 base and confirm package.json . Week numbers not showing: use weekNumber={true} (not showWeekNumber ). DatePicker The Syncfusion React DatePickerComponent provides an intuitive input control with a calendar popup for selecting a single date. It features flexible formatting, masked input, min/max date validation, strict mode, multiple input formats, custom day rendering, localization, and seamless integration as a controlled React component. Component Overview The DatePicker is a Syncfusion React component for date selection with powerful features: Calendar popup Visual date selection with navigation Flexible formatting Display and input formats with pattern support Masked input enableMask for segment by segment date entry with maskPlaceholder Range validation Min/max dates with strictMode automatic correction Multiple views Month, year, and decade views via start and depth properties Day cell customization Disable weekends, highlight special dates via renderDayCell event Full globalization 150+ cultures, RTL ( enableRtl ), locale specific formatting, firstDayOfWeek WCAG 2.2 compliant Full accessibility with keyboard navigation and ARIA attributes Form ready Controlled components, React hooks, form validation integration Programmatic control show() , hide() , focusIn() , focusOut() , navigateTo() , currentView() Complete API Summary Key Properties Property Type Default Description value Date null Selected date min Date 1900 01 01 Minimum selectable date max Date 2099 12 31 Maximum selectable date format string \ FormatObject null Display format (e.g., "dd/MM/yyyy" ) inputFormats string[] \ FormatObject[] null Accepted input formats array placeholder string null Placeholder text for the input enabled boolean true Enable or disable the component readonly boolean false Readonly state allowEdit boolean true Allow editing the input textbox strictMode boolean false Auto correct out of range dates showClearButton boolean true Show/hide the clear button showTodayButton boolean true Show/hide today button start CalendarView Month Initial view: "Month" , "Year" , "Decade" depth CalendarView Month Deepest navigation level enableMask boolean false Enable masked date input maskPlaceholder MaskPlaceholderModel {...} Segment placeholders for masked input enableRtl boolean false Right to left rendering locale string '' Culture/locale code firstDayOfWeek number 0 First day of week (0=Sunday) weekNumber boolean false Show week numbers weekRule WeekRule FirstDay Rule for first week of year calendarMode CalendarType Gregorian Calendar type (Gregorian or Islamic) dayHeaderFormat DayHeaderFormats Short Day name format in header floatLabelType FloatLabelType Never Floating label behavior fullScreenMode boolean false Full screen popup on mobile openOnFocus boolean false Open popup on input focus serverTimezoneOffset number null Server timezone offset cssClass string null Custom CSS class htmlAttributes { [key: string]: string } {} Additional HTML attributes keyConfigs { [key: string]: string } null Custom key action mappings width number \ string null Component width zIndex number 1000 Popup z index enablePersistence boolean false Persist state between reloads Methods Method Returns Description show() void Opens the calendar popup hide() void Closes the calendar popup focusIn() void Sets focus to the component focusOut() void Removes focus from the component navigateTo(view, date) void Navigates to a specific view and date currentView() string Returns the current calendar view name getPersistData() string Gets persisted state data removeDate(dates) void Removes date(s) from the values destroy() void Destroys the component Events Event Args Type Description change ChangedEventArgs Fires when the selected date changes focus FocusEventArgs Fires when input gains focus blur BlurEventArgs Fires when input loses focus open PreventableEventArgs \ PopupObjectArgs Fires when the popup opens close PreventableEventArgs \ PopupObjectArgs Fires when the popup closes cleared ClearedEventArgs Fires when value is cleared created Object Fires when component is created destroyed Object Fires when component is destroyed navigated NavigatedEventArgs Fires when calendar view is navigated renderDayCell RenderDayCellEventArgs Fires when each day cell is rendered Documentation & Navigation Guide When the user needs help with DatePicker, guide them to the appropriate reference: Getting Started 📄 Read: [references/getting started.md](references/datepicker getting started.md) Installation via npm (@syncfusion/ej2 react calendars) CSS theme imports (material3, bootstrap, fluent, tailwind) Component imports and setup Basic JSX implementation with DatePickerComponent Functional vs class component examples Running your first application Date Formats & Input 📄 Read: [references/date formats and input.md](references/datepicker date formats and input.md) Display format property and patterns (yyyy MM dd, dd/MM/yyyy, etc.) Custom format specifiers ( and 0 patterns) Input formats for flexible date entry (accepting multiple formats) Format examples with real world scenarios Parsing and converting user input automatically Culture based default formatting Date Range & Validation 📄 Read: [references/date range and validation.md](references/datepicker date range and validation.md) Min and max date properties for range restriction Range validation and error states strictMode for automatic out of range correction Out of range behavior and error handling Disabling dates outside valid range Edge cases and gotchas Date Views & Navigation 📄 Read: [references/date views and navigation.md](references/datepicker date views and navigation.md) Start property (month, year, decade initial view) Depth property for restricting view levels Calendar navigation and user interactions Month and year selection shortcuts Navigating between different views Default behavior and best practices Customization & Styling 📄 Read: [references/customization and styling.md](references/datepicker customization and styling.md) CSS classes for styling (e datepicker, e calendar, e day, etc.) renderDayCell event for day customization Disabling specific dates and weekends Placeholder, disabled, and readonly states Custom CSS and theme customization Day cell appearance and behavior Globalization & Localization 📄 Read: [references/globalization and localization.md](references/datepicker globalization and localization.md) Culture and locale configuration (German, French, Arabic, etc.) Loading CLDR data for internationalization Date format by culture (different countries, different formats) Locale text customization (today button, placeholder) Right to Left (RTL) support for Arabic, Hebrew, Urdu Week start day by culture Number formatting and calendar adjustments Accessibility & Keyboard Navigation 📄 Read: [references/accessibility and keyboard.md](references/datepicker accessibility and keyboard.md) WCAG 2.2 compliance and accessibility standards Keyboard navigation shortcuts (Alt+Down, arrow keys, Esc) ARIA attributes (aria expanded, aria disabled, aria activedescendant) Screen reader support and announcements Focus management and visible focus indicators Color contrast and visual accessibility Mobile device support Date Masking & Advanced Validation 📄 Read: [references/date masking and strict mode.md](references/datepicker date masking and strict mode.md) enableMask property for structured segment by segment date input maskPlaceholder for custom se