Mobiscroll Event Calendar alternatives
Mobiscroll Event Calendar is a commercial JavaScript calendar that bundles resource scheduling, drag-and-drop, and timeline views in a single purchase. If you're looking for an alternative, you're likely trying to avoid CLI authentication against a private npm registry, add AI development support, or use a public install path for every developer and CI/CD environment.
What to know about Mobiscroll Event Calendar alternatives
The table below compares licensing, scheduling features, framework support, package access, and MCP support.
| Feature | FullCalendar | Schedule-X | DHTMLX Scheduler | Bryntum Calendar |
|---|---|---|---|---|
| License | MIT (core) / Annual subscription (Premium) | MIT (core) / Paid per-project (Premium) | GPL (Standard) / Commercial | Commercial |
| Free tier | MIT (no watermark) | MIT (no watermark) | GPL Standard | Trial only |
| Resource scheduling | Premium only | Premium only | Commercial only | ✔️ |
| Drag-and-drop | ✔️ (free) | Premium only | ✔️ | ✔️ |
| Framework support | React, Angular, Vue | React, Angular, Vue, Svelte | React, Angular, Vue, Svelte | React, Angular, Vue, plain JavaScript |
| Public npm | ✔️ | ✔️ | ✔️ | Trial packages and wrappers |
| Agent support (MCP, skills) | ❌ | ❌ | HTTP MCP server | HTTP MCP server, Claude Code skill |
FullCalendar
FullCalendar is a JavaScript event calendar with an MIT-licensed core covering day, week, month, list, and multi-month views. Drag-and-drop and event resize are free through the @fullcalendar/interaction plugin, and the library installs from the public npm registry without any authentication step.
Installing FullCalendar
The standard packages are on the public npm registry under the MIT license:
npm install @fullcalendar/core@6.1.20 @fullcalendar/daygrid@6.1.20 @fullcalendar/timegrid@6.1.20 @fullcalendar/list@6.1.20 @fullcalendar/interaction@6.1.20
The following shows a team calendar week view with events spanning April 27 to May 1:
<!-- index.html -->
<style>
html, body { margin: 0; padding: 0; height: 100%; font-family: Arial, sans-serif; }
#app { padding: 16px; height: 100vh; box-sizing: border-box; }
#calendar { height: calc(100vh - 32px); }
</style>
<div id="app">
<div id="calendar"></div>
</div>
import { Calendar } from '@fullcalendar/core';
import dayGridPlugin from '@fullcalendar/daygrid';
import timeGridPlugin from '@fullcalendar/timegrid';
import listPlugin from '@fullcalendar/list';
import interactionPlugin from '@fullcalendar/interaction';
const calendarEl = document.getElementById('calendar');
const calendar = new Calendar(calendarEl, {
plugins : [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin],
initialView : 'timeGridWeek',
initialDate : '2026-04-28',
height : '100%',
headerToolbar : {
left : 'prev,next today',
center : 'title',
right : 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
slotMinTime : '08:00:00',
slotMaxTime : '20:00:00',
editable : true,
events : [
{ id : '1', title : 'Team Standup', start : '2026-04-27T09:00', end : '2026-04-27T09:30' },
{ id : '2', title : 'Sprint Planning', start : '2026-04-27T10:00', end : '2026-04-27T12:00' },
{ id : '3', title : 'Design Review', start : '2026-04-27T14:00', end : '2026-04-27T15:00' },
{ id : '4', title : 'Team Standup', start : '2026-04-28T09:00', end : '2026-04-28T09:30' },
{ id : '5', title : 'API Workshop', start : '2026-04-28T11:00', end : '2026-04-28T13:00' },
{ id : '6', title : 'Client Demo Prep', start : '2026-04-28T15:00', end : '2026-04-28T17:00' },
{ id : '7', title : 'Team Standup', start : '2026-04-29T09:00', end : '2026-04-29T09:30' },
{ id : '8', title : 'Regression Testing', start : '2026-04-29T10:00', end : '2026-04-29T13:00' },
{ id : '9', title : 'Product Review', start : '2026-04-29T14:00', end : '2026-04-29T15:30' },
{ id : '10', title : 'Team Standup', start : '2026-04-30T09:00', end : '2026-04-30T09:30' },
{ id : '11', title : 'Release Planning', start : '2026-04-30T14:00', end : '2026-04-30T16:00' },
{ id : '12', title : 'Team Standup', start : '2026-05-01T09:00', end : '2026-05-01T09:30' },
{ id : '13', title : 'Retrospective', start : '2026-05-01T10:30', end : '2026-05-01T12:00' },
{ id : '14', title : 'UX Research Session', start : '2026-05-01T14:00', end : '2026-05-01T17:00' }
]
});
calendar.render();
Three setup details require attention:
- Drag-and-drop and event resize require
@fullcalendar/interactionin thepluginsarray. Settingeditable: truealone is insufficient without it. - In v6, CSS is injected automatically by the JavaScript bundle. No manual CSS imports are needed.
- Resource views (
@fullcalendar/resource-timeline,@fullcalendar/resource-timegrid) require a Premium license key inschedulerLicenseKey.

FullCalendar is free under MIT with a large open-source community
FullCalendar is the right alternative when the application does not need resource scheduling. The MIT-licensed standard tier carries no evaluation watermark, no per-developer fee, and no restriction on open-source use. Drag-and-drop, event resize, ICS import, and recurring events are all free. Framework wrappers for React, Angular, and Vue are first-party and free. The public npm install avoids the CLI authentication step that Mobiscroll requires. Unlike Schedule-X, which moved drag-and-drop to Premium in v4, FullCalendar includes drag-and-drop at no cost in its MIT tier.
FullCalendar Premium required for resource timeline and resource time-grid views
Resource scheduling requires the Premium subscription at $480 per developer per year. FullCalendar has no built-in export to PDF, Excel, or ICS, and no undo/redo stack. The library ships no MCP server and no Claude Code skill. FullCalendar, Schedule-X, and DHTMLX Scheduler all keep resource scheduling outside the free core, while Bryntum Calendar includes all resource views in the base license.
FullCalendar pricing: free MIT core, Premium at $480 per developer per year
The MIT-licensed core is free. Premium, which includes resource timeline and resource time-grid views, starts at $480 per developer per year for up to 10 developers. OEM licensing for products shipped to multiple clients requires a custom quote.
Schedule-X
Schedule-X is an MIT-licensed JavaScript calendar library with six views: day, week, month grid, month agenda, week agenda, and list. It is built on Preact and ships first-party integrations for React, Angular, Vue, and Svelte. The core installs from the public npm registry without authentication.
Installing Schedule-X
The core package and default theme are on the public npm registry. Schedule-X v4 uses the Temporal API for configuration dates, so the polyfill is a required peer dependency:
npm install @schedule-x/calendar@4.5.0 @schedule-x/theme-default@4.5.0 temporal-polyfill@0.3.2
The temporal-polyfill/global import must come before creating any dates or rendering the calendar:
<!-- index.html -->
<style>
html, body { margin: 0; height: 100%; }
#calendar-container { width: 100%; height: calc(100vh - 32px); }
</style>
<div id="calendar-container"></div>
import 'temporal-polyfill/global';
import {
createCalendar,
createViewDay,
createViewWeek,
createViewMonthGrid,
createViewMonthAgenda
} from '@schedule-x/calendar';
import '@schedule-x/theme-default/dist/index.css';
const calendar = createCalendar({
views : [createViewWeek(), createViewDay(), createViewMonthGrid(), createViewMonthAgenda()],
defaultView : 'week',
selectedDate : Temporal.PlainDate.from('2026-04-28'),
weekOptions : { gridHeight : 700, scrollToHour : 8 },
events : [
{ id : '1', title : 'Team Standup', start : '2026-04-27 09:00', end : '2026-04-27 09:30' },
{ id : '2', title : 'Sprint Planning', start : '2026-04-27 10:00', end : '2026-04-27 12:00' },
{ id : '3', title : 'Design Review', start : '2026-04-27 14:00', end : '2026-04-27 15:00' },
{ id : '4', title : 'Team Standup', start : '2026-04-28 09:00', end : '2026-04-28 09:30' },
{ id : '5', title : 'API Workshop', start : '2026-04-28 11:00', end : '2026-04-28 13:00' },
{ id : '6', title : 'Client Demo Prep', start : '2026-04-28 15:00', end : '2026-04-28 17:00' },
{ id : '7', title : 'Team Standup', start : '2026-04-29 09:00', end : '2026-04-29 09:30' },
{ id : '8', title : 'Regression Testing', start : '2026-04-29 10:00', end : '2026-04-29 13:00' },
{ id : '9', title : 'Product Review', start : '2026-04-29 14:00', end : '2026-04-29 15:30' },
{ id : '10', title : 'Team Standup', start : '2026-04-30 09:00', end : '2026-04-30 09:30' },
{ id : '11', title : 'Release Planning', start : '2026-04-30 14:00', end : '2026-04-30 16:00' },
{ id : '12', title : 'Team Standup', start : '2026-05-01 09:00', end : '2026-05-01 09:30' },
{ id : '13', title : 'Retrospective', start : '2026-05-01 10:30', end : '2026-05-01 12:00' },
{ id : '14', title : 'UX Research Session', start : '2026-05-01 14:00', end : '2026-05-01 17:00' }
]
});
calendar.render(document.getElementById('calendar-container'));
Three setup details require attention:
- The
temporal-polyfill/globalimport must come before any call toTemporal.*. Without it,Temporalis undefined at runtime. - The
selectedDateproperty accepts aTemporal.PlainDateobject, not a plain string. - Event
startandenduse'YYYY-MM-DD HH:mm'strings for timed events, or'YYYY-MM-DD'for all-day events.

Schedule-X is the only library in this comparison with free-tier Svelte support
Schedule-X is the only library in this list with first-party Svelte support in the free tier. The MIT-licensed core carries no evaluation watermark, no per-developer fee, and no restriction on open-source use. The functional API (createCalendar(), createViewWeek()) is small and tree-shakable. The public npm install avoids the CLI authentication step that Mobiscroll requires. Teams building standard calendar views under MIT without resource scheduling as a first-release requirement get a lightweight option at no cost. It is the only option here that offers a first-party Svelte integration without a paid license.
Schedule-X v4 moved drag-and-drop to Premium and requires a Temporal API polyfill
Drag-and-drop and event resize are Premium in v4, having moved from the free tier in v3. Resource scheduling is also Premium. The Temporal API polyfill adds a required dependency. LLM training data still contains string-based Schedule-X examples from v2 and v3, so AI agents without current documentation produce code that fails at runtime. This is the only product in this comparison that requires a polyfill as a mandatory peer dependency, unlike FullCalendar, DHTMLX Scheduler, and Bryntum Calendar, which have no equivalent runtime prerequisite.
Schedule-X pricing: free MIT core, Premium from €479 per project per year
The MIT-licensed core is free. Premium add-ons require one license per project:
- Yearly: from €479 per year for two to three developers
- Lifetime: from €999 one-time for two to three developers (includes one year of updates)
- Enterprise: custom quote
DHTMLX Scheduler
DHTMLX Scheduler is a JavaScript event scheduler with a GPL-licensed Standard edition covering day, week, month, year, agenda, and map views. Drag-and-drop is included in the Standard edition, and the package installs from the public npm registry. Resource timeline views require the Commercial license or higher.
Installing DHTMLX Scheduler
The Standard (GPL) package is on the public npm registry:
npm install dhtmlx-scheduler@7.2.13
This minimal setup shows a week view with events spanning April 27 to May 1:
<!-- index.html -->
<style>
html, body { margin: 0; height: 100%; }
#container { width: 100%; height: 100vh; }
</style>
<div id="container"></div>
import { scheduler } from 'dhtmlx-scheduler';
import 'dhtmlx-scheduler/codebase/dhtmlxscheduler.css';
scheduler.config.date_format = '%Y-%m-%d %H:%i';
scheduler.config.first_hour = 8;
scheduler.config.last_hour = 20;
scheduler.init('container', new Date(2026, 3, 28), 'week');
scheduler.parse([
{ id : 1, text : 'Team Standup', start_date : '2026-04-27 09:00', end_date : '2026-04-27 09:30' },
{ id : 2, text : 'Sprint Planning', start_date : '2026-04-27 10:00', end_date : '2026-04-27 12:00' },
{ id : 3, text : 'Design Review', start_date : '2026-04-27 14:00', end_date : '2026-04-27 15:00' },
{ id : 4, text : 'API Workshop', start_date : '2026-04-28 11:00', end_date : '2026-04-28 13:00' },
{ id : 5, text : 'Client Demo Prep', start_date : '2026-04-28 15:00', end_date : '2026-04-28 17:00' }
]);
Three setup details require attention:
- The default date format is
DD-MM-YYYY HH:mm. Using ISO-style strings requires settingscheduler.config.date_format = '%Y-%m-%d %H:%i'. scheduler.init()takes a container ID, a date object (not a string), and a view name. Passing a date string produces silent failures.scheduler.parse()must come afterscheduler.init().

DHTMLX Scheduler GPL Standard is free for open-source projects with drag-and-drop included
The GPL Standard edition is free for open-source projects with no time limit and no per-developer fee. Drag-and-drop, custom tooltips, dark theme, and CSS variable theming are all included. The public npm install requires no authentication step. It is the only competitor in this comparison that ships an HTTP MCP server, giving teams using AI coding agents access to current documentation without a separate configuration step.
DHTMLX also ships an HTTP MCP server covering Scheduler, Gantt, and the rest of the DHTMLX suite. Registering it in Claude Code takes one command:
claude mcp add --transport http dhtmlx-mcp https://docs.dhtmlx.com/mcp
DHTMLX Scheduler timeline and resource views are Pro-only, and multiple instances require Commercial
The timeline view, units view, and resource views are all Pro-only. Multiple independent scheduler instances on the same page require the Commercial license at $1,299. The global singleton architecture makes unit testing harder because state persists between tests unless explicitly reset.
DHTMLX Scheduler has no general-purpose undo/redo stack. Online export uses a DHTMLX-hosted service, and GPL output includes a watermark. DHTMLX Scheduler, FullCalendar, and Schedule-X all keep resource scheduling outside the free tier, while Bryntum Calendar includes all resource views in the base license.
DHTMLX Scheduler pricing: GPL free, Individual $599, Commercial $1,299, Enterprise $2,899
The Standard (GPL) edition is free for open-source projects. Commercial licenses are perpetual:
- Individual: $599 (includes Pro features, including the timeline view)
- Commercial: $1,299 (required for multiple independent instances on the same page)
- Enterprise: $2,899
Bryntum Calendar
Bryntum Calendar is a commercial JavaScript calendar component with 11 view types: day, week, month, year, agenda, list, multi-day, resource day, resource week, resource month, and scheduler resource. Resource scheduling, drag-and-drop, Excel and ICS export, and undo/redo are all in the base license. Trial packages install from the public npm registry without authentication.
Installing Bryntum Calendar
The trial package is on the public npm registry without authentication:
npm install @bryntum/calendar@npm:@bryntum/calendar-trial@7.3.0
This minimal team calendar shows five resources across a work week. Three CSS imports are required in order before instantiation:
<!-- index.html -->
<style>
html, body { margin: 0; padding: 0; }
#app { padding: 1rem; background: #f8f9fa; min-height: 100vh; }
</style>
<div id="app"></div>
import '@bryntum/calendar/fontawesome/css/fontawesome.css';
import '@bryntum/calendar/fontawesome/css/solid.css';
import '@bryntum/calendar/calendar.css';
import '@bryntum/calendar/svalbard-light.css';
import { Calendar } from '@bryntum/calendar';
new Calendar({
appendTo : 'app',
date : '2025-10-12',
height : 700,
mode : 'week',
modes : {
week : { showAllDayHeader : true },
month : true,
day : true
},
resources : [
{ id : 'bryntum', name : 'Bryntum team', eventColor : 'blue' },
{ id : 'hotel', name : 'Hotel Park', eventColor : 'orange' },
{ id : 'michael', name : 'Michael Johnson', eventColor : 'deep-orange' }
],
events : [
{ id : 1, name : 'Hackathon 2025', startDate : '2025-10-11T14:00:00', endDate : '2025-10-18T12:00:00', allDay : true, resourceId : 'bryntum', eventColor : 'green' },
{ id : 2, name : 'Breakfast', startDate : '2025-10-12T09:00:00', endDate : '2025-10-12T10:00:00', resourceId : 'hotel' },
{ id : 3, name : 'Team Scrum', startDate : '2025-10-12T10:00:00', endDate : '2025-10-12T12:00:00', resourceId : 'bryntum' },
{ id : 4, name : 'Scheduler Grid introduction + review', startDate : '2025-10-12T12:00:00', endDate : '2025-10-12T14:00:00', resourceId : 'bryntum' }
]
});
The three imports cover FontAwesome icons, the structural calendar.css, and a theme file. Bryntum ships 10 themes across five light/dark pairs, all switchable at runtime via DomHelper.setTheme().

Resource scheduling, export, and undo/redo in the base license
All 11 view types, including the four resource scheduling views, ship in the base license without add-ons. The base license also includes:
- Recurring events and all-day events
- Drag-and-drop across views
- Undo/redo
- Client-side export to Excel, ICS, and print
- 45 built-in locales
Trial packages and framework wrappers (@bryntum/calendar-react, Angular, and Vue 3) install from the public npm registry without authentication. Licensed packages use Bryntum npm access.
Bryntum Calendar: large bundle and separate configuration objects
The trial watermark persists during evaluation, which complicates stakeholder demos before a license purchase. The uncompressed bundle exceeds 4 MB. Applications where initial load time is a constraint should measure this impact early. The API surface (Calendar, ResourceStore, EventStore, and the view configuration layer) takes time to learn relative to lighter alternatives.
Bryntum Calendar pricing: perpetual license from $680 per developer, $600 per developer at volume
Per-developer licensing starts at $680 for a small team, with a $600-per-developer rate at volume. OEM licensing for SaaS applications requires a separate quote. All licenses are perpetual and include 12 months of updates.
MCP server and Claude Code skill
Bryntum ships two complementary AI tools: an MCP server for documentation retrieval and a Claude Code skill for agent-level judgment about common coding mistakes.
The MCP server at mcp.bryntum.com exposes a search_bryntum_docs tool that returns version-specific documentation, source code examples, and API references for Calendar and the rest of the Bryntum suite. The Claude Code skill covers the mistakes documentation retrieval alone misses: CSS import order, view configuration structure, and the correct dark mode pattern via DomHelper.setTheme().
Bryntum also ships an experimental, disabled-by-default AI chat panel for Calendar. End users give natural language instructions such as "move the team standup to 10 AM every day this week" without touching the interface directly.
For resource scheduling and AI tooling with a public npm install and no CLI authentication, try the Bryntum Calendar free trial.
