skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
syncfusion/react-ui-components-skills169 installs

syncfusion-react-datepicker

Implement Syncfusion React DatePicker component with comprehensive guidance on date selection, formatting, validation, and accessibility. Use this when working with date input fields, date range pickers, custom date formats, locale-specific date handling, or keyboard navigation. This skill covers installation, setup, date formatting, validation, styling, globalization, and accessibility features.

How do I install this agent skill?

npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-datepicker
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides comprehensive documentation and examples for implementing the Syncfusion React DatePicker component. It follows best practices for React development and does not contain any malicious patterns or security risks.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Implementing DatePicker

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

PropertyTypeDefaultDescription
valueDatenullSelected date
minDate1900-01-01Minimum selectable date
maxDate2099-12-31Maximum selectable date
formatstring | FormatObjectnullDisplay format (e.g., "dd/MM/yyyy")
inputFormatsstring[] | FormatObject[]nullAccepted input formats array
placeholderstringnullPlaceholder text for the input
enabledbooleantrueEnable or disable the component
readonlybooleanfalseReadonly state
allowEditbooleantrueAllow editing the input textbox
strictModebooleanfalseAuto-correct out-of-range dates
showClearButtonbooleantrueShow/hide the clear button
showTodayButtonbooleantrueShow/hide today button
startCalendarViewMonthInitial view: "Month", "Year", "Decade"
depthCalendarViewMonthDeepest navigation level
enableMaskbooleanfalseEnable masked date input
maskPlaceholderMaskPlaceholderModel{...}Segment placeholders for masked input
enableRtlbooleanfalseRight-to-left rendering
localestring''Culture/locale code
firstDayOfWeeknumber0First day of week (0=Sunday)
weekNumberbooleanfalseShow week numbers
weekRuleWeekRuleFirstDayRule for first week of year
calendarModeCalendarTypeGregorianCalendar type (Gregorian or Islamic)
dayHeaderFormatDayHeaderFormatsShortDay name format in header
floatLabelTypeFloatLabelTypeNeverFloating label behavior
fullScreenModebooleanfalseFull screen popup on mobile
openOnFocusbooleanfalseOpen popup on input focus
serverTimezoneOffsetnumbernullServer timezone offset
cssClassstringnullCustom CSS class
htmlAttributes{ [key: string]: string }{}Additional HTML attributes
keyConfigs{ [key: string]: string }nullCustom key action mappings
widthnumber | stringnullComponent width
zIndexnumber1000Popup z-index
enablePersistencebooleanfalsePersist state between reloads

Methods

MethodReturnsDescription
show()voidOpens the calendar popup
hide()voidCloses the calendar popup
focusIn()voidSets focus to the component
focusOut()voidRemoves focus from the component
navigateTo(view, date)voidNavigates to a specific view and date
currentView()stringReturns the current calendar view name
getPersistData()stringGets persisted state data
removeDate(dates)voidRemoves date(s) from the values
destroy()voidDestroys the component

Events

EventArgs TypeDescription
changeChangedEventArgsFires when the selected date changes
focusFocusEventArgsFires when input gains focus
blurBlurEventArgsFires when input loses focus
openPreventableEventArgs | PopupObjectArgsFires when the popup opens
closePreventableEventArgs | PopupObjectArgsFires when the popup closes
clearedClearedEventArgsFires when value is cleared
createdObjectFires when component is created
destroyedObjectFires when component is destroyed
navigatedNavigatedEventArgsFires when calendar view is navigated
renderDayCellRenderDayCellEventArgsFires 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • enableMask property for structured segment-by-segment date input
  • maskPlaceholder for custom segment placeholder text
  • Date masking patterns for input guidance
  • strictMode property behavior and enforcement
  • Date parsing rules and validation logic
  • Input validation and format enforcement
  • Edge cases (leap years, month boundaries, etc.)
  • Troubleshooting common validation issues
  • Best practices for date input

Quick Start Example

Here's a minimal working example to get started:

import React, { useState } from 'react';
import { DatePickerComponent } from '@syncfusion/ej2-react-calendars';
import '@syncfusion/ej2-base/styles/material3.css';
import '@syncfusion/ej2-buttons/styles/material3.css';
import '@syncfusion/ej2-inputs/styles/material3.css';
import '@syncfusion/ej2-popups/styles/material3.css';
import '@syncfusion/ej2-react-calendars/styles/material3.css';

export default function App() {
  const [selectedDate, setSelectedDate] = useState(new Date());

  return (
    <div style={{ padding: '20px' }}>
      <h3>Select a Date</h3>
      <DatePickerComponent
        value={selectedDate}
        change={(e) => setSelectedDate(e.value)}
        placeholder="Enter date"
      />
      <p>Selected: {selectedDate?.toDateString()}</p>
    </div>
  );
}

Key points:

  • Import DatePickerComponent from @syncfusion/ej2-react-calendars
  • Import all required CSS themes (base, buttons, inputs, popups, calendars)
  • Use value prop for the current date (can be null or Date object)
  • Use change event (not onChange) to update React state — this is the Syncfusion event name
  • DatePicker opens a calendar popup on click or Alt+Down arrow

Common Patterns

1. Date Range Picker (Min/Max Dates)

<DatePickerComponent
  value={new Date()}
  min={new Date(2026, 0, 1)}
  max={new Date(2026, 11, 31)}
  placeholder="Select a date in 2026"
/>

2. Custom Date Format

<DatePickerComponent
  value={new Date()}
  format="dd/MM/yyyy"
  placeholder="DD/MM/YYYY"
/>

3. Multiple Accepted Input Formats

<DatePickerComponent
  value={new Date()}
  format="yyyy-MM-dd"
  inputFormats={['dd/MM/yyyy', 'yyyy-MM-dd', 'yyyyMMdd']}
  placeholder="Enter date (dd/MM/yyyy or yyyy-MM-dd)"
/>

4. Year/Decade View for Birth Date Selection

<DatePickerComponent
  value={new Date()}
  start="Decade"
  depth="Year"
  placeholder="Select year"
/>

5. Disable Weekends

<DatePickerComponent
  value={new Date()}
  renderDayCell={(args) => {
    if ((args.date.getDay()) === 0 || (args.date.getDay()) === 6) {
      args.isDisabled = true;
    }
  }}
  placeholder="Weekdays only"
/>

6. Controlled Component in React Form

const [date, setDate] = useState(null);

<DatePickerComponent
  value={date}
  change={(e) => setDate(e.value)}
  format="yyyy-MM-dd"
  strictMode={true}
  placeholder="Enter date"
/>

7. German Culture with RTL Support

<DatePickerComponent
  locale="de"
  enableRtl={false}
  firstDayOfWeek={1}
  value={new Date()}
  placeholder="Datum eingeben"
/>

8. Masked Date Input

<DatePickerComponent
  enableMask={true}
  format="MM/dd/yyyy"
  maskPlaceholder={{ day: 'DD', month: 'MM', year: 'YYYY' }}
  placeholder="Select a date"
/>

9. Programmatic Control

import { useRef } from 'react';

const datePickerRef = useRef(null);

// Open calendar
datePickerRef.current.show();

// Close calendar
datePickerRef.current.hide();

// Focus
datePickerRef.current.focusIn();

// Get current view
const view = datePickerRef.current.currentView(); // "Month" | "Year" | "Decade"

// Navigate to specific view
datePickerRef.current.navigateTo('Year', new Date(2026, 0, 1));

<DatePickerComponent ref={datePickerRef} value={new Date()} />

10. Handle All Key Events

<DatePickerComponent
  value={new Date()}
  change={(e) => console.log('Changed:', e.value)}
  focus={(e) => console.log('Focused')}
  blur={(e) => console.log('Blurred')}
  open={(e) => console.log('Opened')}
  close={(e) => console.log('Closed')}
  cleared={(e) => console.log('Cleared')}
  navigated={(e) => console.log('Navigated to view:', e.view)}
  renderDayCell={(args) => {
    // Disable weekends
    if (args.date.getDay() === 0 || args.date.getDay() === 6) {
      args.isDisabled = true;
    }
  }}
/>

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/syncfusion/react-ui-components-skills/syncfusion-react-datepicker">View syncfusion-react-datepicker on skillZs</a>