Scheduling becomes increasingly difficult the more resources are involved in your project.
Tasks have to be scheduled with consideration of people’s availability and workload.
Software-based resource leveling can help you identify potential scheduling scenarios.
These project management software tools support automatic resource leveling.
What is resource leveling?
In a nutshell, resource leveling is the process of scheduling project tasks based on the availability of resources such as people and equipment who carry out these tasks. You try to schedule any project work in such a way that your resources are not over-allocated (meaning: working at > 100% capacity or whatever the limitation may be). In addition to over-allocation, there can be other constraints that have to be considered for resource leveling.
For larger projects, organizations usually use project management software to perform the resource leveling. Software algorithms are able to automatically resolve conflicts like resource overallocation and thus generate project schedules that accommodate any resource gaps or constraints.
More information about resource leveling by the University of Waterloo.
These project management tools support automatic resource leveling
Our list is continuously updated as we discover more solutions with this capability.
Microsoft Project
The de-facto standard for project scheduling and tracking supports both automatic and manual resource leveling. Here’s a screenshot of the leveling feature from accessible via the main menu.

Primavera P6
Oracle Primavera P6 is an enterprise-level project management suite. Primavera is used for large projects in construction or manufacturing and other areas. These projects typically involve hundreds (if not thousands) of resources and thus automatic resource leveling is a must for project management.
Should you use automatic resource leveling?
On both sides you will find people arguing that either manual or automatic resource leveling is the best approach.
The consensus among project managers seems to be that only manual resource leveling can deliver a feasible and desirable project schedule that factors in all priorities by the client and executing party.
That being said, automatic balancing of resources can help you identify other scenarios to allocate your resources and scheduling required tasks.