For scheduling and tracking projects, which are estimated with efforts for each task, you need to configure project resources. Resources can be human resources as well as tools, which need to be available to complete a task.
Each resource starts with
- resource: <ID>.
When you assign a task to a resource, you always refer to the ID.
Make sure to keep each identifier unique.
resources: - resource: MM name: Marc Müller - resource: R1 name: Room 1
dailymax you can set a limit of working hours per day.
dailymax value of
4h is equivalent to set
4h for each day.
resources: - resource: MM name: Marc Müller dailymax: 6h
The ID is the main identifier of a resource or worker. It should be kept short and simple, since this is the identifier you will use in the task configuration to assign resources to tasks
resources: - resource: MM # This worker will use the ID: MM name: Marc Müller - resource: R1 # This resource will use the ID: R1 name: Room 1
In a leave section you can tell the scheduler when employees are on leave.
resources: - resource: Dev name: Developer leave: - 2020-08-03 # One day leave - 2020-08-05 - 2020-08-07 # Three full days leave - 2020-08-10 - 2020-08-12 2h # Three days where Dev is available for 2 hours per day
This resembles the full name of a worker or a resource. It has no meaning to the scheduler, but will make it easier to identify a resource.
resources: - resource: MM # This worker will use the ID: MM name: Marc Müller
workingtime you can configure when resources/workers are available for working on tasks.
By default a worker is available from Monday to Friday, 8 hours per day.
workingtime property you can configure
Which days a worker will be available
You can do this by setting a comma separated list of weekdays where the worker is available (e.g.
MON, TUE, WED or
MO, TU, WE)
How many hours the worker is available each individual day by providing a duration, separated by a colon after the weekday (e.g.
MON:4h, TUE:6h). The duration is optional, with a default value of
Omitted days in this list indicate that the resource/worker is not available on this day at all.
resources: - resource: dev name: Software developer workingtime: MON, TUE, WED, THU:4h # Working from Monday to Wednesday full time, Thursday half time and Friday off - resource: test name: Software tester workingtime: MO:4h, TU, WE, TH, FR:4h # Working full time, except for Monday and Friday
A resource filter can be used to limit the time a resource can spend on tasks.
Like a resource itself, a filter can handle the
workingtime property to artificially restrict the availability of a resource for some tasks.
To apply a filter on a resource, you append the name of the filter to the name of the resource, separated by a
Filters will never show up on a resource chart or a GANTT chart. Eventually, the time booked will always be added to the underlying resource.
Once configured, a filter can be used for multiple resources, where it is treated independently for each resource.
However, if you use the same filter for the same resource multiple times on different tasks, the tasks have to share the availability of that resource. See examples.
filter can only be used in combination with a resource.
resources: - resource: dev name: Software developer dailymax: 6h - filter: onlyMondays workingtime: mo tasks: # This task will start on Monday, 1st of June 2020. # It will finish on Monday, 8th of June after 4 working hours this day, since # dev is only working 6 hours per day and since it is using the `onlyMondays` filter, dev # will only be available on Mondays - task: T1 start: 2020-06-01 efforts: 10h assign: dev.onlyMondays # The second task, despite the configured start date, will commence work on # Monday, 8th of June for 2 remaining hours this day, after T1 has been completed and # the resource `dev1.onlyMondays` is free again. # It will finish on Monday, 15th of June after 4 hours this day - task: T2 start: 2020-06-01 efforts: 6h assign: dev.onlyMondays
Filters can also be used to have a resource working on multiple projects with constrained efforts per day (or week) for each project.
In the following example we will see
Worker 1 who will work 50% of his time on the
First Project, 25% of his time on the
Second Project and all of his remaining time on the
This works because the first project has a higher priority than the second project. In this case the priority is based on the order of the tasks in the file.
Worker 1 is only allowed to work 4 hours per day on the tasks of the
First Project. The remaining time is left for the
Second Project, where he is only allowed to work 2 hours per day due to the filter.
Third Project has the lowest priority, and here
Worker 1 has no time constraints, so he will work all of his remaining time per day.
project: name: Multiple Filters start: 2020-06-01 resources: - resource: W1 name: Worker 1 - filter: half dailymax: 4h - filter: quarter dailymax: 2h tasks: - group: P1 name: First Project (50% of time) tasks: - task: T1 name: First task efforts: 2d assign: W1.half - task: T2 name: Second task efforts: 2d assign: W1.half - group: P2 name: Second Project (25% of time) tasks: - task: T1 name: First task efforts: 1d assign: W1.quarter - task: T2 name: Second task efforts: 2d assign: W1.quarter - group: P3 name: Third Project (all remaining time) tasks: - task: Rest efforts: 8d assign: W1
Instead of time per day, a similar result could be achieved on a day-per-week basis by using the
WorkingTime setting on the filter.