Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

Easy Datepicker

4 sites Security covered
View on drupal.org

This module provides a dependency-free datepicker for Drupal that improves the user experience of selecting dates, especially older ones. It offers faster navigation through years and months, direct date typing, and adheres to accessibility standards.

Easy Datepicker

A lightweight, dependency-free datepicker for Drupal that fixes one specific, common complaint: selecting an old date with the native HTML5 date input is painful. Picking a birthdate from decades ago means either scrolling a tiny calendar back one month at a time, or fighting the browser's built-in year spinner. Easy Datepicker replaces that with a calendar you can drill straight from days → months → years, paging 12 years at a time once you're there — reaching 1957 from today takes a couple of clicks, not sixty.

Why not just use the core Date element or a JS library?

  • The core/Webform Date element renders the same native <input type="date"> this module exists to move away from.
  • Libraries like jQuery UI's datepicker are deprecated in Drupal core, and third-party libraries like Flatpickr mean pulling in an external JS dependency and its own maintenance/security surface.

Easy Datepicker has zero dependencies — no jQuery, no jQuery UI, no external library. It's a single small JS file that progressively enhances a plain text field, and degrades to a normal text input if JavaScript is unavailable.

Features

  • Fast old-date navigation. Click the calendar header once to drill into a month grid, again for a year grid you can page 12 years at a time.
  • Direct typing. Type a date straight into the field (e.g. 08082026) and it auto-formats as you go (08/08/2026), the same feel as the native input's segmented entry — no need to touch the calendar at all if you already know the date.
  • Today / Clear buttons in the calendar footer.
  • Five configurable display formats: mm/dd/yyyy, dd/mm/yyyy, yyyy-mm-dd, dd-mm-yyyy, mm-dd-yyyy.
  • Values always stored as Y-m-d, regardless of display format — matching Webform's native Date element storage convention, so CSV exports and conditional logic elsewhere in a form keep working unchanged.
  • Site-wide admin settings (/admin/config/content/easy-datepicker): default minimum/maximum date, "stop future date selection", "stop past date selection", and default date format — overridable per field.
  • WCAG 2.1 AA accessible: proper contrast ratios, aria-current/aria-pressed state (not color alone), a live region announcing view changes and selections, and arrow-key navigation within the calendar grid (Left/Right/Up/Down/Home/End) beyond the strict Tab-only minimum.
  • Themeable via CSS custom properties (--cdp-accent, etc.) — no need to override the module's CSS directly.

Three ways to use it

  1. Form API element#type => 'easy_datepicker' in any custom form, Webform or otherwise.
  2. Webform Text field — add the CSS class js-easy-datepicker to any Webform "Text field" element's Attributes. Webform's native Date element is left completely untouched by this module; nothing about it is altered or hijacked.
  3. Public API for other modules — call easy_datepicker_attach() directly on any text-based element from your own hook_form_alter(), or implement hook_easy_datepicker_options_alter() to programmatically adjust the resolved date range/format for any field. See easy_datepicker.api.php for full documentation and examples.

Requirements

  • Drupal 10.2+ or Drupal 11
  • No external libraries or dependencies
  • Optional: the Webform module, for the Webform Text field integration (the module works standalone without it)

Installation

Install as you would normally install a contributed Drupal module. See Installing Modules for further information.

Configuration

  1. Enable the module.
  2. Visit /admin/config/content/easy-datepicker to set site-wide defaults (date range, future/past restrictions, display format).
  3. Visit /easy-datepicker/demo to try the widget immediately, or add #type => 'easy_datepicker' to a custom form, or the js-easy-datepicker class to a Webform Text field.

Activity

Tracked releases
6
Tracked since
Aug 2026
Latest release
6 days ago
Releases (12 mo)
6 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.5 Stable Aug 17, 2026
1.0.3 Stable Aug 17, 2026
1.0.2 Stable Aug 17, 2026
1.0.1 Stable Aug 17, 2026
1.0.0 Stable Aug 10, 2026
1.0.x-dev Dev Aug 8, 2026