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.

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.
Integration code example
- Retain the previous feed or common event snapshot instead of comparing unrelated data sets.
- Inspect added, updated, deleted, and unchanged records.
- Resolve manual conflicts before writing or adopting the proposed result.
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.
npm install @wts-calendar/coreimport { verifyCalendarLicense } from '@wts-calendar/core';
import { PremiumCalendarInteroperability } from '@wts-calendar/core/premium-interoperability';
import type { CalendarEventInput } from '@wts-calendar/core';
const license = await verifyCalendarLicense('YOUR_WTS_LICENSE_KEY');
const interoperability = new PremiumCalendarInteroperability({ license });
// 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 };
}Application responsibilities
Keep stable event IDs across snapshots. Detecting a deleted event does not authorize deleting it from another system; apply your own reconciliation policy.
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.
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.