ICS change detection & reconciliation
Detect changes between ICS snapshots and reconcile competing local and remote edits against a common base. The toolkit produces an inspectable result so applications can choose their conflict policy deliberately.
Loading interactive demo…
What you configure
- diffICalendar
- Compare previous and current ICS content using the intended time zone.
- reconcile
- Supply base, local, and remote event collections with stable IDs.
- conflict policy
- Choose local, remote, or manual reconciliation behavior.
Essential integration
This assumes the shared Quick start already provides premiumLicense and, for UI views, premiumCalendarOptions. Only the feature-specific setup is shown.
import { PremiumCalendarInteroperability } from '@wts-calendar/core/premium-interoperability';
import type { CalendarEventInput } from '@wts-calendar/core';
const interoperability = new PremiumCalendarInteroperability({ license: premiumLicense });
// File contents and event snapshots come from your application, not a WTS service.
export function compareFeeds(previousIcs: string, currentIcs: string) {
return interoperability.diffICalendar(previousIcs, currentIcs, 'UTC');
}
export function reconcileEvents(
base: CalendarEventInput[],
local: CalendarEventInput[],
remote: CalendarEventInput[],
) {
const result = interoperability.reconcile(base, local, remote, 'manual');
// Keep local state until your conflict UI resolves every unresolved conflict.
return { proposedEvents: result.events, conflicts: result.conflicts };
}Behavior and lifecycle
- Three-way conflicts retain the base, local, and remote values.
- Manual mode preserves the local copy in the proposal while reporting the unresolved conflict.
Limits and responsibilities
- Basic ICS import/export remains separate from this Premium change-management workflow.
- When a provider returns a delta, preserve remoteBase so absent unchanged events are not mistaken for deletions.
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.