Demand & availability forecasting
Compare supplied demand with modeled availability and already scheduled work. Time buckets report coverage and shortfall so an application can explain where the plan is covered, at risk, or under-resourced.

What you configure
- forecastDemand
- Set the requested start/end interval and bucketMinutes.
- demand
- Supply projected demand intervals, units, and resource IDs.
- resources / events / profiles
- Keep capacity, scheduled load, and shift policies current.
Integration code example
- Translate your projected orders or workload into resource demand intervals.
- Run the licensed planner over the intended forecast horizon.
- Present demand, net available units, coverage, and shortfall together rather than hiding the assumptions.
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 { 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',
},
],
});
export const forecast = planner.forecastDemand({
start: '2026-09-07T08:00:00Z',
end: '2026-09-07T18:00:00Z',
bucketMinutes: 60,
demand: [
{ start: '2026-09-07T08:00:00Z', end: '2026-09-07T12:00:00Z', units: 3 },
{ start: '2026-09-07T12:00:00Z', end: '2026-09-07T18:00:00Z', units: 8 },
],
});
console.table(forecast.buckets);
console.log('Coverage', forecast.coveragePercent);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.
Supply your own demand estimates. This compares demand against available capacity; it does not train a forecasting model.
Behavior and lifecycle
- Each bucket combines peak demand, existing scheduled load, and modeled availability.
- Results distinguish covered, at-risk, and shortfall states.
Limits and responsibilities
- This is deterministic capacity analysis, not a statistical or AI prediction of future demand.
- The forecast is only as current as the demand and availability inputs you supply.
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.