forceCalendar / embedded calendar infrastructureExplore Salesforce

Calendar components for enterprise applications

Build interactive calendars into Salesforce, CRMs and custom applications with a headless engine and flexible UI components.

Core 2.5.7 / Interface 1.9.1 / MIT

26K+ npm package downloads

26,240 downloads across Core (14,727) and Interface (11,513). npm counts include repeat and automated downloads.

Core + Interface · through Sep 30, 2026
Inside your applicationInteractive specimen 01 / customer appointments
aAcme CRM/Customer calendar
Synthetic demo workspace

Customer appointments, in context.

Live Web Component · local sample events

Application request → real local calendar API

23 sample appointments · overlapping sessions · editable events

Scripted local demo. No connected account. Interact with the calendar to stop.

Client meetingsImplementationReviews & appointmentsReal component. Local data. Yours to explore.
Built for the application around the calendar.Data, permissions, persistence, and business rules stay in your architecture.
Salesforce Lightning + ApexWeb Components UIReact & Vue adaptersJavaScript headless engineICS import / export

Interactive playground

Test the calendar before you integrate.

Switch scenarios. Change the view. Create, move, and edit sample events. Inspect the configuration behind the calendar.

Open the interactive playground

01 / the enterprise starting point

Calendar integration
for Salesforce.

Connect Lightning pages to standard Salesforce Events, with Apex enforcing access at the data boundary.

Install & configure Salesforce

Released installer 0.3.0.1 · sandbox validation first

Actual Salesforce Lightning captureSynthetic sample records
Genuine Salesforce Lightning weekly calendar with synthetic appointments
forceCalendar inside Salesforce Lightning. Genuine capture; sample data only.
forceCalendar inside Salesforce Lightning. Genuine capture; sample data only.. Real Salesforce Lightning demo with synthetic sample data.
01

Lightning Web Security

Packaged static resources and Web Components. LWS is required; legacy Lightning Locker is not supported.

02

Access enforced in Apex

Sharing and user-mode access apply to records and fields. The interface is not an authorization boundary.

03

Your org, deliberately configured

Assign controller access, configure Event permissions, and validate your org’s rules before rollout.

The screenshot demonstrates the interface, not package installation or live data-access verification. Read Salesforce’s official custom-element compatibility guidance

02 / designed to fit

Headless engine.
Embeddable interface.

Embed scheduling where the context already lives: customers, appointments, classrooms, and internal tools. Your application decides what an event means.

Your applicationRecords · identity · permissions · storage
Interface

Interactive calendar views

Month, week, and day views. Event editing. Web Components, React, and Vue.

Explore Interface
Core

Calendar logic and data

Events, recurrence, conflict detection, search, and ICS. A headless engine with no runtime dependencies.

Explore Core
Application codeSalesforce adapterCustom integrationOptional agent caller

03 / your domain, on the calendar

Calendar use cases
across applications.

These are application patterns you can build with the library. Salesforce has a ready integration; other systems need your data adapter and domain rules.

01 / example application

Customer relationships

Discovery calls, account reviews, and onboarding appointments beside the customer record.

02 / example application

Education & appointments

Office hours, admissions interviews, and workshops inside your own student or client portal.

03 / example application

Teams & shared resources

Display room, equipment, or staff schedules. Your app supplies resource policies and booking validation.

04 / from package to product

Connect your data.
Embed the component.

Mount the component and supply your events. Keep persistence, access checks, and business logic in your application.

your-application.js
import '@forcecalendar/interface';

const calendar = document.createElement('forcecal-main');
calendar.setAttribute('view', 'week');
document.querySelector('#customer-calendar').append(calendar);

// Load records through your authorized data layer.
calendar.setEvents(customerAppointments);

// Real operations. Your application owns persistence.
calendar.addEvent(appointment);
calendar.updateEvent(appointment.id, newTime);
Also works without a screen

Headless by design. Agent-accessible by choice.

Application code or an agent can call the calendar engine through your adapter. Your application decides access and when calls run. A separate scoped-tool adapter is a private prototype, not a public hosted service. forceCalendar does not assign tasks or orchestrate agents.

Engineering, in the open

Review tests and benchmarks.

Open source under MIT. Review the actual versions, tests, and measured workloads before choosing it for your system.

Security & dependency review

Published results identify their scope. An npm advisory scan is not a penetration test or a security guarantee.

Read the audit

Reproducible benchmarks

Compare the workloads that matter to your application. Package size and runtime performance are different measurements.

Explore benchmarks

Available: JavaScript engine, UI components, Salesforce integration, and ICS file handling. Apple, Google, and Microsoft live account connections and two-way synchronization are not shipped. ICS import/export is not live account synchronization.

Salesforce integration

Install and configure forceCalendar.

Start with Salesforce