Lightweight, framework-agnostic date and time picker with TypeScript support and zero dependencies.
See the code
A flexible JavaScript date and time picker.
Zero dependencies. TypeScript support. At home in any framework.
Documentation & examples · API reference · Releases
From a simple date field to a booking flow, Vanilla Calendar Pro gives you control over what users can pick and how it looks.
Explore the interactive examples →
npm install vanilla-calendar-pro
# or: pnpm add vanilla-calendar-pro
<div id="calendar"></div>
import { Calendar } from 'vanilla-calendar-pro';
import 'vanilla-calendar-pro/styles/core.css';
new Calendar('#calendar', {
selectionDatesMode: 'multiple-ranged',
}).init();
To open the calendar from an input, use the same imports with inputMode: true:
<input type="text" id="calendar-input" aria-label="Choose a date">
new Calendar('#calendar-input', { inputMode: true }).init();
For example, add a time picker and swipe navigation to the same calendar:
import { Calendar, motion, time } from 'vanilla-calendar-pro';
import 'vanilla-calendar-pro/styles/core.css';
import 'vanilla-calendar-pro/styles/motion.css';
import 'vanilla-calendar-pro/styles/time.css';
new Calendar('#calendar', {
extensions: [motion, time],
animation: true,
enableSwipe: true,
selectionTimeMode: 24,
}).init();
Also available: annotations for date popups and range tooltips, weeks for week features, and months for multiple-month calendars. See all extensions →
Upgrading? Existing options stay the same; ESM applications now need to import and register the extensions they use. Existing full CSS imports still work. Migration details →
Prefer a script tag? Use the CDN or download the complete package →
Use the built-in light and dark themes, let the calendar follow your app's theme, or create your own with CSS variables and custom layouts.
styles/core.css includes the core layout and both light/dark themes.styles/time.css or styles/weeks.css.styles/index.css includes every feature and both themes.Themes and customization → · Styles reference →
Chrome 57+ · Firefox 52+ · Edge 80+ · Opera 44+ · Safari 10.1+. Date handling is tested across timezones and daylight-saving changes.
This project is tested with BrowserStack.
Free and open source. If Vanilla Calendar Pro saves you time, a star or a coffee helps keep it growing.
Found a bug or have an idea? Open an issue.
MIT License · Made by Yury Uvarov.
3,474 followers · starred Jan 2026
26 followers · starred Jun 2024
120 followers · starred Jul 2026
202 followers · starred Mar 2023
Lightweight, framework-agnostic date and time picker with TypeScript support and zero dependencies.
See the code
A flexible JavaScript date and time picker.
Zero dependencies. TypeScript support. At home in any framework.
Documentation & examples · API reference · Releases
From a simple date field to a booking flow, Vanilla Calendar Pro gives you control over what users can pick and how it looks.
Explore the interactive examples →
npm install vanilla-calendar-pro
# or: pnpm add vanilla-calendar-pro
<div id="calendar"></div>
import { Calendar } from 'vanilla-calendar-pro';
import 'vanilla-calendar-pro/styles/core.css';
new Calendar('#calendar', {
selectionDatesMode: 'multiple-ranged',
}).init();
To open the calendar from an input, use the same imports with inputMode: true:
<input type="text" id="calendar-input" aria-label="Choose a date">
new Calendar('#calendar-input', { inputMode: true }).init();
For example, add a time picker and swipe navigation to the same calendar:
import { Calendar, motion, time } from 'vanilla-calendar-pro';
import 'vanilla-calendar-pro/styles/core.css';
import 'vanilla-calendar-pro/styles/motion.css';
import 'vanilla-calendar-pro/styles/time.css';
new Calendar('#calendar', {
extensions: [motion, time],
animation: true,
enableSwipe: true,
selectionTimeMode: 24,
}).init();
Also available: annotations for date popups and range tooltips, weeks for week features, and months for multiple-month calendars. See all extensions →
Upgrading? Existing options stay the same; ESM applications now need to import and register the extensions they use. Existing full CSS imports still work. Migration details →
Prefer a script tag? Use the CDN or download the complete package →
Use the built-in light and dark themes, let the calendar follow your app's theme, or create your own with CSS variables and custom layouts.
styles/core.css includes the core layout and both light/dark themes.styles/time.css or styles/weeks.css.styles/index.css includes every feature and both themes.Themes and customization → · Styles reference →
Chrome 57+ · Firefox 52+ · Edge 80+ · Opera 44+ · Safari 10.1+. Date handling is tested across timezones and daylight-saving changes.
This project is tested with BrowserStack.
Free and open source. If Vanilla Calendar Pro saves you time, a star or a coffee helps keep it growing.
Found a bug or have an idea? Open an issue.
MIT License · Made by Yury Uvarov.
3,474 followers · starred Jan 2026
26 followers · starred Jun 2024
120 followers · starred Jul 2026
202 followers · starred Mar 2023