Zero dependencies. Full internationalization. Framework wrappers for React, Vue & Angular. Built-in date & range picker modes. Everything you need in just 76KB.
Pure vanilla JavaScript. No external libraries required. Just 22KB minified.
Native Intl.DateTimeFormat API support for any locale. RTL languages included.
Official React, Vue 3, and Angular components included in the package.
Fetch events dynamically with async/await. Perfect for API integrations.
CSS custom properties for easy theming. Dark mode ready out of the box.
Works perfectly on desktop, tablet, and mobile. Touch-friendly interface.
Free for personal projects. A per-project commercial license is required when you ship SimpleCalendarJS in a paid product, client site, or SaaS application.
For personal projects, learning, and open source.
For commercial projects that need ongoing support and updates.
Pay once, use forever. No renewals, no surprises.
No — if you're building a personal project, a side project with no revenue, or contributing to open source. The npm package is free and fully functional.
Yes — if SimpleCalendarJS is used in a commercial product, a client website, or any project that generates revenue. One license covers one project. A company with 3 commercial projects needs 3 licenses.
Perfect for date pickers, booking systems, and range selection
Get started in seconds with your favorite framework
npm install simple-calendar-jsimport 'simple-calendar-js/dist/simple-calendar-js.min.css';
const calendar = new SimpleCalendarJs('#calendar', {
defaultView: 'month',
locale: 'en-US',
fetchEvents: async (startDate, endDate) => {
const res = await fetch('/api/events');
return await res.json();
},
onEventClick: (event) => {
console.log('Event clicked:', event);
},
onSlotClick: (date) => {
console.log('Slot clicked:', date);
}
});