Moment / Luxon migration toolkit
Support an existing date-library stack through the licensed migration workflow. Compatibility loading selects the requested formatting peer dynamically rather than loading both date libraries into every integration.
Loading interactive demo…
What you configure
- loadDateFormattingCompatibility
- Select moment or luxon3 from the interoperability toolkit.
- peer dependency
- Install the selected date library in the consuming application.
- formatting configuration
- Review the legacy format strings, locale settings, and time-zone expectations.
Essential integration
This assumes the shared Quick start already provides premiumLicense and, for UI views, premiumCalendarOptions. Only the feature-specific setup is shown.
import type { CalendarOptions } from '@wts-calendar/core';
import { PremiumCalendarInteroperability } from '@wts-calendar/core/premium-interoperability';
const interoperability = new PremiumCalendarInteroperability({ license: premiumLicense });
// Install only the compatibility peer you select.
const formattingPlugin = await interoperability.loadDateFormattingCompatibility('moment');
export const label = formattingPlugin.format(
new Date('2026-09-07T09:30:00Z'),
'dddd, MMMM D YYYY [at] HH:mm',
{ locale: 'en-US', timeZone: 'UTC' },
);
// Pass the plugin in your calendar's plugins array when using legacy format strings.
export const calendarOptions = { plugins: [formattingPlugin] } satisfies Pick<CalendarOptions, 'plugins'>;
// Luxon alternative: loadDateFormattingCompatibility('luxon3') with Luxon patterns.Behavior and lifecycle
- Selecting one peer does not automatically load the other.
- Existing direct format-moment and format-luxon3 entry points remain available separately.
Limits and responsibilities
- The Premium toolkit adds gated selection and migration workflow; direct formatting compatibility is not reclassified as Premium.
- This is not a guarantee that every legacy format string or date-library behavior is interchangeable.
Premium
Enable this capability
- Optional module
- @wts-calendar/core/premium-interoperability
- Local capability ID
- premium-interoperability · enabled by package-wide Premium
Use the request form to describe your project and deployment origins. Pricing and terms are confirmed privately. A WTS license is separate from provider credentials; do not send passwords or production access tokens.
The live example uses a browser-visible deployment key restricted to this package and approved origins. It does not collect license keys or visitor credentials.