Drop-in JS Calendar. Zero Dependencies. No Bloat.

Full internationalization. Framework wrappers for React, Vue & Angular. Built-in date & range picker modes. Everything you need in just ~18 KB gzipped.

40+ weekly npm downloads · Used by developers worldwide

Loading calendar...

Using this in a commercial project? A license is required →

Features

Zero Dependencies

Pure vanilla JavaScript. No external libraries required. Just ~18 KB gzipped.

Internationalization

Native Intl.DateTimeFormat API support for any locale. RTL languages included.

Framework Ready

Official React, Vue 3, and Angular components included in the package.

Async Events

Fetch events dynamically with async/await. Perfect for API integrations.

Fully Customizable

CSS custom properties for easy theming. Dark mode ready out of the box.

Responsive

Works perfectly on desktop, tablet, and mobile. Touch-friendly interface.

And Much More

4 View Modes — Month, Week, Day & List
Drag & Drop — Move events between dates
Event Resizing — Adjust event duration
Tooltips — Rich hover information
34+ Locales — Native Intl API support
RTL Languages — Arabic, Hebrew & more
Dark Mode — CSS variables theming
Year Picker — Quick year navigation
View Switcher — Toggle between views
Grid Controls — Show/hide borders
12/24 Hour — Flexible time formats
Weekday Formats — Narrow, short or long
Timed Events — List or block style
Async Events — API integration ready
Timezone Support — Display in any timezone
Customizable Toolbar — Show/hide elements
Touch Friendly — Mobile optimized
No Dependencies — Pure vanilla JS

Simple, Honest Pricing

Free for personal projects. A per-project commercial license is required when you ship SimpleCalendarJS in a paid product, client site, or SaaS application.

Free

$0 / forever

For personal projects, learning, and open source.

  • Full calendar component
  • Month, week & day views
  • Date & range picker modes
  • All framework wrappers (React, Vue, Angular)
  • Community support
  • MIT License — attribution required
Get Started Free

Annual

$49 / per year, per project

For commercial projects that need ongoing support and updates.

  • Everything in Free
  • Commercial use license — no attribution required
  • Priority email support
  • All updates during subscription
  • Commercial license certificate
  • 1 license = 1 commercial project
Buy Annual License
Best Value

Lifetime

$199 / one-time, per project

Pay once, use forever. No renewals, no surprises.

  • Everything in Annual
  • Lifetime access — pay once
  • All future updates included
  • Priority email support
  • Commercial license certificate
  • 1 license = 1 commercial project
Buy Lifetime License

Do I need a license?

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.

Date & Range Selection

Perfect for date pickers, booking systems, and range selection

Date Picker

Loading calendar...

Range Picker

Loading calendar...

Quick Start

Get started in seconds with your favorite framework

Terminal
npm install simple-calendar-js

Example Code

import '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);
  }
});