Introduction
Calendar infrastructure for the web, frameworks, and Salesforce Lightning Web Security.
forceCalendar is a calendar library with a headless engine, optional visual interfaces and platform integrations. Applications and agents can use the same calendar APIs; agents decide what to do with them. Choose the layer you need:
| Layer | Current documented version | What it provides |
|---|---|---|
| Core | 2.5.7 | Headless events, recurrence, search, timezone utilities and ICS |
| Interface | 1.9.0 | Month/week/day Web Components, snapshots, selection and event editing |
| React | 0.3.1 | Typed props, callbacks, refs and client-side registration |
| Vue | 0.3.1 | Typed props, emits, template refs and client-side registration |
| Salesforce | 0.3.0.1 released | LWC, Apex persistence and optional Reader/Editor permission sets |
Versions and verification boundaries are summarized in What's new. The npm packages and the Salesforce installer have different release processes.
Start with a working integration
- Quick start: render a calendar and load a snapshot
- Installation: pinned packages, runtime requirements and TypeScript
- Migration: snapshots, read-only behavior, dates and lifecycle changes
- Salesforce installation: supported environment and deployment choices
- Permissions: least-privilege setup and its platform-wide effects
- Headless integrations: expose calendar APIs through your application
- API reference: public Core APIs and labeled internal utilities
Design and boundaries
Headless Core. Core ships as ESM with no runtime package dependencies. Calendar computation works without a DOM; browser download helpers and optional Workers still need the corresponding host APIs. No dependencies reduces dependency exposure, but does not eliminate security risk.
Web Components. Interface supplies <forcecal-main> and <forcecal-event-form> with Shadow DOM. Applications own persistence and server authorization. A browser event notification is not proof that a remote save succeeded.
Salesforce support. The LWC requires Lightning Web Security (LWS). Legacy Lightning Locker does not support the third-party custom elements used by this integration. Manual DOM insertion does not bypass that requirement.
Dates are an integration contract. Timed events, inclusive all-day civil dates, visible-range ends and provider-exclusive end dates are different concepts. Read the date guidance before adapting an external calendar. The Interface grid and visible range currently use the browser's local timezone; setting timezone does not turn them into an arbitrary-zone grid.
Recurrence is bounded. Core implements RFC 5545 recurrence features, with explicit resource limits and known edge cases. Built-in recurring-event mutation is disabled until a series/occurrence scope workflow exists. See recurrence for the V2 named-zone contract and remaining limits.
Verify your environment. Shipped tests cover specific paths, not every browser, Salesforce org, assistive technology or external provider. See security and the component guides for the remaining boundaries.