dev.club — where best developers and top companies connect.

dev.club — where best developers and top companies connect.Invite only

Request invite

Vanilla Calendar Pro. Built for developers. Ready for users. Lightweight at its core. Flexible in every detail. Packed with features to make it your own. Date range, time and week views in the built-in light and dark themes.

Vanilla Calendar Pro

A flexible JavaScript date and time picker.
Zero dependencies. TypeScript support. At home in any framework.

npm version Tests Monthly npm downloads

Documentation & examples · API reference · Releases

A calendar that fits your product

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 →

Get started

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();

Add the features you need

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 →

Make it look like your app

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.

Themes and customization → · Styles reference →

Browser support

Chrome 57+ · Firefox 52+ · Edge 80+ · Opera 44+ · Safari 10.1+. Date handling is tested across timezones and daylight-saving changes.

Support the project

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.

Buy me a coffee

Found a bug or have an idea? Open an issue.


MIT License · Made by Yury Uvarov.

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.