# NewSchedulableResourceInput

input type

Create-input for a SchedulableResource. The tenant (org group) is derived SERVER-SIDE from the principal; logicalFacilityId (the parent — rides the header) is tenant-scoped server-side and must be ACTIVE (any LF classification — does not restrict booking sites). userId is legal on staff resources ONLY (in-tenant + ACTIVE — CONFLICT/REF_STATE else); capacity defaults to 1; workingHours defaults to.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — the kind + LF coordinate ('staff at <LF caption>'); when supplied it must be non-blank. |
| `logicalFacilityId` | [ID](/types/#scalars) `ID!` | yes | The parent LogicalFacility (the booking site) — tenant-scoped + ACTIVE. Immutable after birth. |
| `resourceType` | [SchedulableResourceType](/types/SchedulableResourceType/) `SchedulableResourceType!` | yes | The canned kind — IMMUTABLE at birth. |
| `userId` | [ID](/types/#scalars) | no | The optional staff link — staff-kind only (refused otherwise); in-tenant + ACTIVE. |
| `capacity` | [Int](/types/#scalars) | no | Concurrent-booking capacity (1..100); omitted = 1. |
| `workingHours` | [WorkingHoursWindowInput](/types/WorkingHoursWindowInput/) `[WorkingHoursWindowInput!]` | no | The weekly advisory calendar; omitted =. |
| `code` | [String](/types/#scalars) | no | No further notes. |

## Used by

- [createSchedulableResource](/reference/schedulable-resource/createSchedulableResource/)
