## Specialized Configuration Tools

Use these dedicated tools for resource planner widget configuration:

| Tool | Purpose |
|------|---------|
| `cplace_resource_planner_get_configuration` | Get current config in friendly grouped format |
| `cplace_resource_planner_configure_data_source` | Configure node search and date calculation |
| `cplace_resource_planner_configure_groups` | Configure optional first/second grouping layers |
| `cplace_resource_planner_configure_columns` | Configure attributesConfiguration and defaultColumnsConfiguration |
| `cplace_resource_planner_configure_display` | Configure visual/display settings (partial updates) |

**Workflow**:
1. Add resource planner widget using `cplace_execute_layout_script` / `layout.define()` with type `cf.cplace.resourceManagement.resourcePlannerDefinition`
2. Configure data source: `cplace_resource_planner_configure_data_source` (node search + date calculation)
3. Configure display: `cplace_resource_planner_configure_display` (intervals, colors, tree structure)
4. Optionally configure groups: `cplace_resource_planner_configure_groups`
5. Configure columns: `cplace_resource_planner_configure_columns` (attributes and default columns)

**Get-Modify-Set Pattern**:
1. Call `cplace_resource_planner_get_configuration` to get current state
2. Modify the relevant section
3. Call the corresponding configure tool with the complete desired state

**Configuration Modes**:

**Date Calculation** (via `dateCalculation`):
- `STATIC`: Fixed start/end dates → activates `start`, `end`
- `DYNAMIC`: Relative offset from today → activates `startValueDynamic`, `startUnitDynamic`, `endValueDynamic`, `endUnitDynamic`
- `ATTRIBUTE`: Read from entity attributes → activates `startDateAttribute`, `endDateAttribute`

**Optional Groups**:
- `checkboxFirstGroup: true` → activates `searchFirstGroup`, `sortColumnFirstGroup`, `sortOrderFirstGroup`, `firstGroupSelection`, `firstGroupName`
- `checkboxSecondGroup: true` → activates `searchSecondGroup`, `sortColumnSecondGroup`, `sortOrderSecondGroup`, `secondGroupSelection`, `secondGroupName`

**App-Conditional Sections** (configure via generic layout tools):
- Actions app installed → activates `actionSearch`, `sortColumnAction`, `sortOrderAction`, `actionSelection`
- Chart app installed → activates `chartSearch`, `sortColumnChart`, `sortOrderChart`, `chartSelection`

**Search Triplet Pattern**: Node selection, groups, root nodes, actions, and charts all follow the same pattern: a search attribute (use cplaceJson from cplace_search_pages) + sort column + sort order.

**Version**: The `version` attribute is always set to `V2`. V1 is legacy and auto-migrated. Do not set manually.
