Premium

Overbooking policies

Make overbooking an explicit decision rather than an accidental consequence of overlapping events. Resource policies can block, warn, or allow while retaining typed issues and severity for the host application.

Overbooking policies — 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

overbooking.mode
Choose block, warn, or allow for the resource profile.
maxUtilizationPercent
Set the policy's utilization ceiling.
reserveUnits
Account for capacity that should remain reserved.

Integration code example

  1. Define capacity units and choose the policy for each relevant resource.
  2. Evaluate proposed bookings with current events and planning profiles.
  3. Surface warnings and reasons, and decide whether a permitted booking should be committed.

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
TypeScript integration
import { verifyCalendarLicense } from '@wts-calendar/core';
import { AdvancedResourcePlanner } from '@wts-calendar/core/advanced-resource-planning';

const license = await verifyCalendarLicense('YOUR_WTS_LICENSE_KEY');
const planner = new AdvancedResourcePlanner({
  license,
  timeZone: 'UTC',
  resources: [
    { id: 'design', title: 'Design studio', capacity: 2 },
    { id: 'engineering', title: 'Engineering', capacity: 4 },
  ],
  events: [
    {
      id: 'review',
      title: 'Design review',
      resourceId: 'design',
      start: '2026-09-07T09:00:00Z',
      end: '2026-09-07T10:30:00Z',
    },
  ],
  profiles: [
    { resourceId: 'design', overbooking: { mode: 'warn', maxUtilizationPercent: 100 } },
  ],
});

export const decision = planner.evaluateBooking({
  resourceId: 'design',
  start: '2026-09-07T09:30:00Z',
  end: '2026-09-07T10:00:00Z',
  units: 2,
});
console.log(decision.allowed, decision.projectedUtilizationPercent, decision.issues);

Application responsibilities

The engine returns data, not a built-in chart. Render results in your application and call planner.setData() after resources, events or profiles change.

Use block to reject over-capacity bookings, warn to require your application to surface warnings, or allow when your policy permits them. Evaluation alone does not create a booking.

Behavior and lifecycle

  • Evaluation retains issues even when the chosen mode allows the proposal.
  • Policy-adjusted capacity is also available to utilization analysis.

Limits and responsibilities

  • A warning is not a completed approval workflow; connect workflow hooks separately when needed.
  • The planner does not prevent a separate client from booking stale capacity.
Premium

Enable this capability

Optional module
@wts-calendar/core/advanced-resource-planning
Signed entitlement
advanced-resource-planning

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.