New releasecore v2.5.3interface v1.7.0
Zero dependencies · MIT

Calendar infrastructure for strict enterprise environments.

A headless scheduling engine and framework-agnostic Web Components. Zero dependencies. MIT licensed. Built for Salesforce Locker Service / Lightning Web Security and strict CSP.

  • Zero dependencies
  • MIT licensed
  • TypeScript
  • Locker / LWS ready
  • WCAG keyboard nav
<forcecal-main> — live, drag an eventlive
0
Runtime dependencies
26,572
npm downloads
2.5x
Smaller than FullCalendar
45+
CSS theming tokens
In plain words

What forceCalendar is

A calendar you can put inside your own product

Month, week, and day views with events, recurring schedules, timezones, and search. You install two packages, add one HTML tag, and connect your data. It is not a hosted service. The code runs entirely inside your application.

Built for places where most JavaScript is not allowed

Large companies restrict what code on their pages may do. A Content Security Policy (CSP) is a browser rule set that, for example, forbids generating code at runtime or injecting styles. Salesforce goes further with Locker Service, a sandbox around every component. Most calendar libraries rely on exactly the techniques these rules block, so they break, often silently.

Why it exists

forceCalendar was written from scratch to work under those rules: no blocked techniques, no third-party code to audit, one MIT license. If your security team has ever rejected a JavaScript library, this is the calendar they will approve.

Your application

Salesforce LWC · React · Vue · Angular · plain HTML

drops in the <forcecal-main> tag
@forcecalendar/interface

The visible calendar: month, week, and day views as standard Web Components, themed with CSS variables.

asks the engine what to display
@forcecalendar/core

The engine: stores events, expands recurring schedules, handles timezones, finds conflicts, and searches. No UI, no dependencies; usable on its own.

01

Locker Service

Most calendar libraries use JavaScript patterns that Locker Service prohibits: eval, dynamic Function constructors, and prototype manipulation.

forceCalendar uses only Locker-safe patterns. No blocked APIs, no runtime code generation.

02

Strict CSP

Content Security Policy blocks inline styles, eval, and unsafe-inline. Calendar libraries that inject CSS or generate styles at runtime fail silently.

All styling uses CSS custom properties and external stylesheets. No inline style injection.

03

Security Reviews

Enterprise security teams audit every dependency. A library with 50+ transitive dependencies creates weeks of review work and ongoing supply chain risk.

Zero dependencies means zero supply chain risk. One package to audit, one license to approve.

Flagship integration

Started with Salesforce

Most calendar libraries break inside Locker Service, and that is where forceCalendar started. The same zero-dependency architecture works in any strict enterprise environment.

forceCalendar month view running inside a Salesforce org, showing colorful events across February 2026
Month view inside a Salesforce org
forceCalendar week view inside Salesforce showing timed events
Week view with timed events
forceCalendar day view inside Salesforce showing detailed event blocks
Day view with event details

Native LWC Integration

Runs as a Lightning Web Component. Uses real Salesforce data through Apex, not external APIs.

Locker Service Safe

Zero blocked API calls. No eval, no dynamic Function constructors, no prototype manipulation.

All Views Included

Month, week, and day views with event creation, color coding, and full navigation.

Where it runs

Enterprise calendar infrastructure

Salesforce is the flagship integration. The same architecture works anywhere strict security is required.

Salesforce

Shipping now. LWC + Apex with full Locker Service compliance.

Any Web App

Web Components work in React, Vue, Angular, or vanilla JS, with first-party SSR-safe adapters for React and Vue.

Strict CSP

No eval, no inline styles. Works behind the strictest policies.

Air-Gapped

Zero external requests. Runs fully offline with no CDN dependencies.

Architecture

Two packages, one architecture

Use Core for scheduling logic and Interface for production-ready UI components.

Salesforce Integration

Lightning Web Component

Built on top of both packages. Loads as a static resource, connects to Salesforce data through Apex. Locker Service safe.

See it running
app.jsJavaScript
import { Calendar } from '@forcecalendar/core';
import '@forcecalendar/interface';

const calendar = new Calendar({
  locale: 'en-US',
  timeZone: 'America/New_York'
});

// That's it. <forcecal-main> is ready to use.
Capabilities

What’s included

Recurrence Rules

RFC 5545 RRULE support with exceptions, overrides, and timezone-aware expansion for complex enterprise schedules.

Timezone Support

Full IANA timezone database with automatic daylight-saving transitions and cross-timezone conversion.

ICS Import / Export

iCalendar file support for interoperability with Outlook, Google Calendar, and existing enterprise systems.

Conflict Detection

Spatial indexing enables fast overlap detection across large event sets without scanning every event.

Full-Text Search

Built-in search engine with fuzzy matching across event titles, descriptions, and custom fields.

Accessible by Default

Full WAI-ARIA grid semantics and keyboard navigation across month, week, and day views. No extra configuration.

Server-Side & Edge

The DOM-free engine runs in Node, serverless functions, and edge runtimes like Cloudflare Workers that ban eval.

CSS Theming

45+ CSS custom properties for complete visual control without touching JavaScript or Shadow DOM internals.

Honest numbers

How it compares

Independent benchmarks against FullCalendar, an excellent and widely-used library. forceCalendar exists for a different niche: strict enterprise environments where most calendar libraries cannot run.

Bundle Size

forceCalendar (core + interface)1.23 MB
FullCalendar (core + 5 plugins + rrule)3.10 MB

2.5x smaller total bundle. Fewer bytes to audit, fewer bytes to ship behind corporate firewalls.

Recurrence (RRULE)

The dedicated rrule library is still faster at raw RRULE expansion, but the gap is now roughly 2x on common daily and weekly patterns (it was up to 1,200x before the v2.1–v2.3 engine work); a five-year daily series (1,825 occurrences) expands in about a quarter of a millisecond.

The trade-off: forceCalendar’s recurrence is built-in with zero extra dependencies and applies timezone/DST handling per occurrence, while FullCalendar requires the separate rrule library. At real-world calendar volumes the difference is microseconds per render.

Benchmarks run against published npm packages; sizes are installed (unpacked) package sizes taken from the committed results file. Full methodology and interactive results available on the dashboard.

View full benchmark

Ship a calendar your security team will approve.

One audit, zero dependencies, MIT licensed. Up and running in minutes.

Try the playground