Premium

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.

Moment / Luxon migration toolkit — Screenshot of actual package API results with sample data. The read-only result table is application-owned; this feature does not provide this screen as built-in UI. Preview build: @wts-calendar/core@1.1.0 (unpublished).
Screenshot of actual package API results with sample data. The read-only result table is application-owned; this feature does not provide this screen as built-in UI. Preview build: @wts-calendar/core@1.1.0 (unpublished).

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.

Integration code example

  1. Identify which date library the existing application actually uses.
  2. Install that peer and load its compatibility plugin through the licensed toolkit.
  3. Validate representative labels, locales, and time zones before completing migration.

Copy this TypeScript into your application, not the browser console. Replace YOUR_WTS_LICENSE_KEY with an entitlement issued for your deployment origin. A WTS license is not a Google, Microsoft or CalDAV credential. These examples are documentation only and never execute on this page.

Install command
npm install @wts-calendar/core moment
TypeScript integration
import type { CalendarOptions } from '@wts-calendar/core';
import { verifyCalendarLicense } from '@wts-calendar/core';
import { PremiumCalendarInteroperability } from '@wts-calendar/core/premium-interoperability';

const license = await verifyCalendarLicense('YOUR_WTS_LICENSE_KEY');
const interoperability = new PremiumCalendarInteroperability({ license });

// 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.

Application responsibilities

Install moment for the shown example. For Luxon, install luxon and select luxon3; Moment and Luxon pattern syntaxes are not interchangeable.

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
Signed entitlement
premium-interoperability

Request the required features and deployment origins by email. Pricing and terms are confirmed privately. A WTS license is separate from provider credentials; do not send passwords or production access tokens.

Email for a license key →

This public guide does not execute Premium modules or collect license tokens.