# Schedule Mgmt. (Basic) (cf.cplace.projectPlanning.app.basic.basicScheduleManagement)

## Overview

Enables schedule management for basic use cases with the types "Schedule", "Task", and "Milestone". This app provides the foundational data model for project scheduling in cplace, allowing users to create hierarchical project plans with tasks and milestones that can be visualized in Gantt charts.

**Icon:** `cf cf-gantt-square-o`

## Dependencies

When this app is installed, the following apps are automatically installed:

| App | Qualified Name | Description |
|-----|----------------|-------------|
| New Gantt | `cf.cplace.projectPlanning.app.gantt2.gantt2` | Provides the "New Gantt" widget for visualizing and editing planning elements |
| cplace Basis | `cf.cplace.platform` | Base platform (always installed) |

## Types Provided

### cf.schedule (Schedule / Plan)

The root container for project planning. A Schedule represents a complete project plan that contains tasks and milestones.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Start | `startDate` | Date | No | The schedule starts in the morning of the specified day |
| Calendar Week Start | `startDateCalendarWeek` | Text | No | Calendar week of start date |
| Finish | `endDate` | Date | No | The schedule finishes in the evening of the specified day |
| Calendar Week Finish | `endDateCalendarWeek` | Text | No | Calendar week of finish date |
| Duration | `duration` | Number | Yes | Duration of the schedule |
| Duration Unit | `durationUnit` | Text | Yes | Unit for duration (e.g., days, weeks) |
| Calendar ID | `calendarId` | Text | Yes | Working calendar for schedule calculation |
| % Completed | `percentComplete` | Number | Yes | Overall progress percentage |
| Gantt Version | `cf.cplace.gantt.ganttVersion` | Text | No | If value is "2.0", schedule loads in New Gantt Widget |
| Last Calculation | `lastCalculation` | Number | No | Timestamp of last re-calculation in ms |

**Icon:** `cf-gantt-square-o`

---

### cf.activity (Task / Vorgang)

Represents a work item with duration within a schedule. Tasks can be nested hierarchically and linked with dependencies.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Parent object | `parent` | Reference | Yes | Parent task or schedule |
| Schedule | `containingSchedule` | Reference | No | The containing schedule |
| Automatically scheduled | `automaticScheduling` | Boolean | No | Reschedule when predecessor dates change |
| Start | `startDate` | Date | No | Task starts in the morning of the specified day |
| Calendar Week Start | `startDateCalendarWeek` | Text | No | Calendar week of start date |
| Finish | `endDate` | Date | No | Task finishes in the evening of the specified day |
| Calendar Week Finish | `endDateCalendarWeek` | Text | No | Calendar week of finish date |
| Duration | `duration` | Number | Yes | Duration of the task |
| Duration Unit | `durationUnit` | Text | Yes | Unit for duration |
| Calendar ID | `calendarId` | Text | Yes | Working calendar for task calculation |
| % Completed | `percentComplete` | Number | Yes | Task progress percentage |

**Icon:** `fa-tasks`

---

### cf.milestone (Milestone / Meilenstein)

Represents a significant point in time within a schedule, typically marking the completion of a phase or deliverable.

| Attribute | Internal Name | Type | Required | Description |
|-----------|---------------|------|----------|-------------|
| Parent object | `parent` | Reference | Yes | Parent task or schedule |
| Schedule | `containingSchedule` | Reference | No | The containing schedule |
| Automatically scheduled | `automaticScheduling` | Boolean | No | Reschedule when predecessor dates change |
| Date | `date` | Date | No | The milestone date |
| Calendar Week Date | `dateCalendarWeek` | Text | No | Calendar week of the milestone |
| Calendar ID | `calendarId` | Text | Yes | Working calendar reference |
| % Completed | `percentComplete` | Number | Yes | Milestone completion status (0 or 100) |

**Icon:** `cf-milestone`

## Widgets Provided

This app itself does not define widgets. Visualization is provided through the **New Gantt** widget from the dependency app:

| Widget | Kind | Required App | Description |
|--------|------|--------------|-------------|
| New Gantt | `cf.projektplanung.gantt` | `cf.cplace.projectPlanning.app.gantt2.gantt2` | Interactive Gantt chart for visualizing and editing schedules, tasks, and milestones with drag-and-drop support |

## Type Hierarchy

```
Schedule (cf.schedule)
  |
  +-- Task (cf.activity) [via parent attribute]
  |     |
  |     +-- Task (nested, via parent)
  |     +-- Milestone (via parent)
  |
  +-- Milestone (cf.milestone) [via parent attribute]
```

## Usage Notes

### When to Use This App

- **Basic project planning**: When you need simple schedule management with tasks and milestones
- **Gantt visualization**: When you want to display project timelines in a Gantt chart
- **Standalone schedules**: When projects are independent and don't require cross-project references

### Common Patterns

1. **Create a Schedule first**, then add Tasks and Milestones as children
2. **Use the `parent` attribute** to build hierarchical task structures (Work Breakdown Structure)
3. **Enable automatic scheduling** (`automaticScheduling`) to propagate date changes through dependencies
4. **Set Gantt Version to "2.0"** on the Schedule to use the New Gantt widget

### Limitations

- No built-in support for cross-schedule dependencies (use Schedule Mgmt. (Advanced) for that)
- No resource assignment capabilities (use Resource Management app for that)
- No task class styling (use Task Classes app for visual categorization)

### Related Apps

| App | Purpose |
|-----|---------|
| Schedule Mgmt. (Advanced) | Adds subscriptions for cross-schedule references |
| Task Classes | Visual categorization of tasks in Gantt |
| Project Structure | Hierarchical project organization |
| Resource Management | Resource assignment and planning |
| Project Planning (Basic) | Alternative scheduling approach with additional widgets |

## Investigation Details

- **Investigated on:** 2026-02-02
- **Workspace used:** `[App Investigation] cf.cplace.projectPlanning.app.basic.basicScheduleManagement`
- **Workspace ID:** `w3ra47lbuvtmxepdli4dq2a0v`
