Resource grid
Place people, rooms, or equipment beside a date grid so assignments can be understood in context. Each lane belongs to a stable resource record, and event assignments remain part of your application's data.

What you configure
- view
- Select the resource view for an all-day resource grid.
- resources / resourceSources
- Supply uniquely identified resource records directly or through a source.
- resourceId
- Associate each assigned event with its resource's ID.
Integration code example
- Verify a license with the resource-scheduling entitlement and register the optional resource scheduling module.
- Load resources and events with stable IDs, then set the visible date and time zone.
- Handle selection and mutation callbacks in your application and persist accepted changes if needed.
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/core<div id="calendar"></div>@import '@wts-calendar/core/styles/calendar.css';import { WtsCalendar, verifyCalendarLicense } from '@wts-calendar/core';
import { resourceSchedulingModule } from '@wts-calendar/core/resource-scheduling';
const license = await verifyCalendarLicense('YOUR_WTS_LICENSE_KEY');
const container = document.querySelector<HTMLElement>('#calendar');
if (!container) throw new Error('Calendar container not found');
const calendar = new WtsCalendar({
container,
license,
plugins: [resourceSchedulingModule],
viewDate: '2026-09-07',
timeZone: 'UTC',
startOfWeek: 1,
height: 560,
headerToolbar: { start: 'prev,next', center: 'title', end: '' },
view: 'resource',
resources: [
{ id: 'design', title: 'Design studio', capacity: 2 },
{ id: 'engineering', title: 'Engineering', capacity: 4 },
],
events: [
{
id: 'offsite',
title: 'Team offsite',
resourceId: 'design',
start: '2026-09-07',
end: '2026-09-09',
isAllDay: true,
},
],
});
await calendar.whenIdle();
// Call from your component's unmount/destroy hook.
export function dispose() {
calendar.destroy();
}Application responsibilities
Mount after the host element exists. For Angular, React or Vue, pass these options and plugins to the web wrapper and use its calendar API for the calls below; let the wrapper own destruction.
Add the stylesheet once to your global CSS/SCSS file using a bundler that resolves npm package imports. Keep it separate from component TypeScript.
Behavior and lifecycle
- Resource rows and date columns make assignment and multi-day event spans visible together.
- Resource hierarchy, availability rules, and column customization can be combined with the grid.
Limits and responsibilities
- The grid renders supplied assignments; it is not an automatic scheduling optimizer.
- Local edits are not durable until your application saves them.
Enable this capability
- Optional module
- @wts-calendar/core/resource-scheduling
- Signed entitlement
- resource-scheduling
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.