Working Calendar

The Working Calendar lets you define which days of the week are working days for a project. Every project can have its own schedule — a Middle-Eastern team running Sun–Thu, a seven-day construction site, or a Mon–Sat retail rollout — and DPlan will shade the Gantt correctly, calculate durations accurately, and schedule tasks on the right days automatically.

DPlan supports two calendar layers: a project-level working calendar (set here, affects all tasks and resources) and a resource-level calendar (per-person schedule, set in the Resources panel). The effective working days for any task assignment is the intersection of the two — so a part-time resource working Mon–Wed on a Mon–Fri project contributes only Mon–Wed hours.

Opening the Working Calendar

The Working Calendar is set inside the Project modal:

  1. Click the project name in the sidebar, or open Settings → Projects.
  2. Click Edit (pencil icon) on the project card, or double-click the project name.
  3. Scroll to the Working Calendar section at the bottom of the Project modal.

The section shows two rows: a preset strip and a day-toggle row.

Regional Presets

Click any preset button to instantly apply a standard regional schedule:

PresetWorking DaysTypical Region
Mon–FriMonday to FridayDefault — most of the world
Sun–ThuSunday to ThursdayUAE, Saudi Arabia, Israel (traditional)
Mon–SatMonday to SaturdayIndia, parts of South-East Asia
Sun–FriSunday to FridayEgypt, some Gulf states
7 DaysAll seven daysHospitality, construction, healthcare

The active preset button highlights in blue. If you toggle individual days manually, the preset buttons update automatically — the one that matches your current selection (if any) stays highlighted; all others deactivate. This makes it easy to see if you are on a standard or custom schedule at a glance.

Custom Schedule — Day Toggles

Seven day-toggle buttons (Su Mo Tu We Th Fr Sa) let you pick any combination of working days. Click a button to toggle it on (blue) or off (grey). At least one day must remain active — toggling the last active day off is ignored.

After clicking individual toggles, if your selection exactly matches a preset, that preset button highlights. Otherwise all presets appear inactive, indicating a custom schedule.

How It Affects the Rest of DPlan

Gantt Column Shading

Non-working days are shaded grey on the Gantt timeline (the same shade as weekends in a standard Mon–Fri project). If a project uses Sun–Thu, Friday and Saturday columns are shaded grey instead of the usual Saturday and Sunday.

Duration Calculations

Task duration shown in the Task Editor and duration column counts only working days per the project calendar. A 5-working-day task on a Sun–Thu calendar runs Sun–Thu, not Mon–Fri. Duration exported to XLS or shown in reports uses the same count.

Critical Path Method (CPM)

Auto-scheduling skips non-working days when pushing successor task start dates forward. If a task finishes on Thursday (last working day in a Sun–Thu calendar), its dependent successor starts the following Sunday — not the next calendar day (Friday).

Due-Date Badges & Overdue Detection

The "days remaining" badge on each Gantt bar counts working days to the task end date using the project calendar. A task ending in 3 calendar days on a Mon–Fri project that falls over a weekend shows "1 day" remaining, not "3".

Resource Capacity (Effective Working Days)

When the Resource Histogram and EVM calculations estimate how many hours a resource can contribute to a task, DPlan uses the intersection of the project calendar and the resource's own working-day schedule:

Resources without a custom calendar inherit the full project schedule.

Calendar View

In the Calendar (monthly and weekly views), non-working days per the project calendar are shaded grey — matching the Gantt shading so both views stay visually consistent.

Backward Compatibility

Existing projects (saved before this feature was added) have no workDays field. DPlan reads their calendar as Mon–Fri ([1,2,3,4,5]) — exactly the same as before. No data migration needed. Projects only gain a workDays field after you open the Project modal and click Save Project.

Data Storage

The working calendar is stored as an integer array in the .dplan file under project.workDays:

"workDays": [0, 1, 2, 3, 4]

Day numbers follow JavaScript Date.getDay() convention: 0 = Sunday, 1 = Monday, … 6 = Saturday. The array is sorted ascending. A missing or empty workDays field is treated as [1,2,3,4,5] (Mon–Fri).

Interaction with Resource Working Days

The per-resource working-day calendar (set in Resources → Edit Resource → Working Days) operates at a finer level than the project calendar. The two calendars combine as follows:

ScenarioEffective Days
No project override, no resource overrideMon–Fri (system default)
Project: Sun–Thu, resource: no overrideSun–Thu (project calendar applies)
Project: Mon–Fri, resource: Mon–WedMon–Wed (resource is more restrictive)
Project: Sun–Thu, resource: Mon–FriMon–Thu (intersection)
Project: 7 Days, resource: Tue+ThuTue+Thu (resource schedule wins)

This means you never need to set both calendars to the same thing — set the project calendar to your region's standard week, and only set resource calendars for people who work different hours than the rest of the team.

See also: Resources & Team Members, Auto-Schedule & CPM, Gantt View, Earned Value (EVM).