Project scheduling software (scriptable, cross-platform, and open source)
GanttPV Home
Why GanttPV? Help Scripts Server Developer Object Role Modeling
Open Report
Add Project
Rename Project
Add Task
Set Date
Set Duration
Set Dependency
Move Row
Assign Resource
Add Holiday
Save File

A Tour of GanttPV

You have just installed GanttPV and would like to put it to work. How to start? Open the GanttPV application. In Windows you can select it from the Programs submenu of the Start menu. On the Macintosh, double click the GanttPV program icon.

The main window

When you first open GanttPV only the main window is open. This is the control center of the application. You will use it to add new projects and reports. The program has already created a default set of two projects and three reports. Let's get acquainted with them.

The first "project" listed (named "All Projects") isn't a real project. It is just a convenient place to group together reports that are not specific to a particular project. The first report "Project/Report List" refers to the main window itself. You can ignore it for now. The second report "Resource List" will be used to keep track of the people and resources who can be assigned to projects. We'll come back to this report later.

The second project is named "New Project". We'll change that name later, but for now just leave it. The last report listed is named "Gantt Chart". Let's open this report.

Open Reports

Reports are opened from the main window. Click once to select the report. (Notice that the color of the row changes when it is selected.) Once the report is selected you can open it by pressing "Return" or "Enter". You can also open a report by double-clicking the report row.

The grid window

The "Gantt Chart" report is an example of a "grid" report, named for the spreadsheet like grid of rows and columns. It is also a "Task" report. Every line of the report will correspond to one of the tasks that must be completed to accomplish the project's goals. Use this report to help you think through and identify those tasks.

If you have a project that needs planning, define tasks for your project in the following steps. Otherwise, follow along using as an example the project "selling a house".

When you first open the Gantt Chart report you will see that one task, named "First Task", has already been added for you. Also the task name cell is the currently selected "cell". (You can tell which cell is selected by the dark frame that is drawn around the contents of the cell.)

Define tasks

The task name should be a brief description of the work that must be done to complete the task. Obviously "First Task" is not a very descriptive name. Go ahead and change it by typing in a brief description of one of the tasks for your project. Unless it is already obvious to you which task must be first, just pick any task that comes to mind. You can easily change the order as you add more tasks. If you wish to follow the "selling a house" project example, type "Choose realtor". Press "Enter" or "Return" to tell GanttPV to update the name.

If you change your mind about this or any other change, you can reverse the change by selecting "Undo" from the "Edit" menu. You can reapply the change by selecting "Redo". GanttPV will remember and allow you to reverse any change you make during an editing session.

You probably need more than one task. You may wish to insert about a half a dozen at first so you can keep up a flow of ideas. Locate the "Insert Row" button on the far left of the tool bar. Click on the insert button half a dozen times. If no existing row is selected the new rows will be added at the end of the list. Select a row by clicking on the row number in the left column. Select a cell by clicking in the cell. The first time you click on a cell, the whole cell is selected and anything you type will replace its contents. If you click on a cell a second time you can edit the contents of the cell.

Click on the Name cell on the second row. Type the name of another task for your project. For the "selling a house" example, type "Decide on price". When you press "Return" or "Enter" the program automatically changes the selection to the next row. Enter more task names ("Clean up yard", "Clean windows", "Sign papers to list house", "Do touch up painting", "Clean kitchen"). If you fill up all of the rows, go ahead and add more with the "Insert Row" button. Continue to enter new tasks as long as the ideas keep flowing in.

Save your work

Save your work by selecting "Save As..." from the "File" menu. The program will ask you to specify the file name and the save location. Once you have named the file you can save your work by selecting "Save" from the "File" menu.

To open the file later, select "Open..." from the "File" menu. If you have any unsaved changes from the previous file the program will ask if you wish to save those changes. GanttPV will only allow you to have one file open at a time. However, that file can have almost any number of projects in it.

Organize tasks

The next step is to organize the tasks. Usually it helps to list them in the order they should be done. Sometimes you will want to group the tasks according to who will do them. Find the "Move Up" and "Move Down" buttons. Select a row and then click the "Move Up" or "Move Down" icon. You can select several rows by either clicking the first row and shift clicking (holding down the "Shift" key while clicking) the last row or by dragging from the first row number to the last.

Review the sorted list to identify any missing tasks. If you have two closely related tasks that should be done together, consider combining them into one task. Do this by changing the name of the first and deleting the second. Find the "Delete Row" button . Select the task to be deleted and click the "Delete Row" button.

If you find that a task consists of closely related subtasks that should be done at different times, consider splitting them into separate tasks. Do this by adding another row and changing the names.

Maybe you're done

Review what you've accomplished. You have identified the tasks that need to be completed. You have also organized the tasks in an order that will: (1) help you verify that you haven't missed anything important and (2) make it easier for you to do the tasks. You have created a "To Do List" for the project. For many projects that is all the scheduling that is needed.

GanttPV can help you to do more, if it is needed. How to decide? Perhaps you need to be able to forecast how long it will take to do the project. Perhaps you also need to monitor your progress toward completing the project by that date. If so then you may wish to determine task durations and dependencies. To do this you will have to be able to estimate how long and how much effort it will take to complete each of the tasks you have identified.

Task duration vs. task effort

Here's an example. One of the tasks in our example project is: "Choose Realtor". How long will it take to choose one? That depends on how you will go about the task. Perhaps you decide that it will take a few days to ask your friends who they would recommend, then you'll call up each realtor to determine how well you like them, then you'll choose one. Based on this approach it may take five days to choose a realtor. Five days is the duration. Write this down.

How much effort will it take? Maybe you will spend 30 minutes with each of six friends to ask about realtors, and you think you will get three names. You might guess that it will take 30 minutes to become acquainted with each realtor. That comes to four and a half hours. Double that because of the inevitable obstacles that get in the way and the estimated effort is 9 hours. Write down this number and the formula you used to come up with it.

As you can see from this example, sometimes estimates of duration and effort are more guesses than estimates. You may start working on a task and decide that it makes more sense to take an entirely different approach. If you want to complete the project by your planned completion date, you will try to fit your new approach into the same duration.

Putting duration into GanttPV

How do you fit your duration into GanttPV? GanttPV assumes that there are eight working hours a day and five working days a week, Monday through Friday. In other words to tell GanttPV that a task will take five days, enter 40 hours in the "Duration" column. If the duration is one day, enter 8 hours. The default duration for a task in GanttPV is 8 hours or one day.

As of GanttPV v0.5, it is possible to enter duration and effort in weeks, days, and hours. With this feature you could enter one week as "1w" (or "5d" or "40h" or "40"). Different time periods can be combined as: "1w 3d 2h". To install this feature use the "Install Time Units" script. The time entered is converted to hours for storage, but displayed as weeks, days, and hours based on the currently defined work week. Use the "Edit Work Week" script to change the default work week of 40 hours per week and 8 hours per day.

Go ahead and calculate (or guess at) duration and effort for each task. Be sure to write them down. Enter the duration into GanttPV. If any of the durations include partial hours, round them up to the next whole hour. (GanttPV doesn't like fractions of hours.)

If the task effort is different from its duration, you may wish to enter the effort also. Use the script "Install Assignment Hours" to add an "Effort" column to the insert column popup list.


What if there is a holiday coming up and you don't want to schedule work on the holiday? Or what if you want to schedule work on a Saturday or Sunday that GanttPV normally treats as non-work days? You can tell GanttPV about this by using the Holiday table.

To change the Holiday table first create a holiday report.

  1. Select the main window.
  2. Select the "All Projects" row.
  3. Find the "New Report" icon . Click on it.
  4. Select the "Holiday" row. Click "OK".
  5. Open the "Holiday" report.
  6. Find the "Insert Column" icon. . Click on it.
  7. Select all of the rows. Click "OK".
  8. Click on the "Insert Row" button once for each date that you wish to change.
  9. Enter the name of the holiday (or "Working Saturday" if you are changing a Saturday into a work day).
  10. Enter the date in YYYY-MM-DD format (for example "2004-06-09") for that day.
  11. Enter the number of work hours you wish to use for that day. Enter "0" to make it a non-working day. Enter "8" to make it a normal working day. Enter "4" to make it a half day. (Only whole hours can be specified.)

Close the Holiday window when you are done. (Be careful to close the Holiday report window. If you close the main window instead you will exit GanttPV.)

Decide when to complete each task

The next step is to specify when you intend to work on each task. You can specify this in either of two ways:

  • Enter the "Start Date" for the task (use YYYY-MM-DD format for the dates), or
  • Tell GanttPV which other task this task should start after (define "Prerequisites").

In the example, take the tasks "Clean up yard" and "Clean windows". Assume that each has a duration of one day and that you want to "Clean up yard" on Monday and then "Clean windows" on Tuesday. You can either:

  • Enter Monday's date as the "Start Date" of the first task and Tuesday's date as the "Start Date" of the second task, or
  • Enter Monday's date as the "Start Date" of the first task and the tell GanttPV the second task is dependent on the first task.

One advantage of the second approach is how well it accommodates change. What would happen if you decided to start a day later? With the first approach you would have to change both start dates. With the second approach you would only have to change the first and the second would automatically change.

Defining prerequisites

To make "Clean windows" dependent on "Clean up yard":

  1. Select the "Clean windows" row in the Task (Gantt Chart) window.
  2. Find the "Assign Prerequisites" button . Click on it.
  3. Select the "Clean up yard" row. (Note that tasks are listed here in the same order as the tasks appear in the report. Any already defined prerequisites would be highlighted.)
  4. Click "OK"

Repeat this procedure for each task.

Beginning in version 0.5, there is a faster option for defining dependencies. Many times you will have a series of rows that should be dependent each on the next.

  1. Make sure that the tasks are listed in the report on the order they should be done.
  2. Select the rows.
  3. Find the "Assign Prerequisites" button . Click on it.

Displaying the gantt bars

Where is the gantt chart bar? To display it:

  1. Select the first row (by clicking on the row number in the first column).
  2. Find the "Scroll To Task" button on the far right of the tool bar. Click on it.
  3. The gantt bar will come into view.

Maybe you're done

Review what you've accomplished. You have identified the tasks, estimated effort and duration to complete them, and defined dates when each task should be started and finished. This will help you to (1) make sure you haven't missed anything important and (2) see when the project can be completed if each task is started and completed on schedule. For many projects that is all the scheduling that is needed.

GanttPV can help you to do more, if necessary. How to decide? Maybe you have several people who will be working on the project and it isn't obvious to you who should be working on which tasks. You can use GanttPV to help you decide on those assignments.

Assign resources

To assign resource to tasks in GanttPV:

  1. Enter the resources into the "Resource" report. (Insert rows and enter names.)
  2. Assign resources to tasks by selecting the task row and clicking the "Assign Resource" button in the Task (Gantt Chart) report.

To display resource assignments, either:

  1. Insert the "Resources Names" column which displays all resources assigned to the task. (Install this option with the "Install Task Parenting" script. Available in version 0.5 and later.)
  2. or:
  3. Add a new "Resource/Assignment" report to "All Projects" to display the resource assignments.

You may have to change Task start dates or dependencies to make sure that people are not over booked (working on two full time projects at the same time, for example).

Changing the project name with a script

As mentioned before, "New Project" is not a very descriptive name for this project. It's time to change it. You could create a new "Project" report in "All Projects" and edit it there. Instead you'll use a script.

  • Select the project row in the main window.
  • Open the "Scripts" menu. If the only item listed is "Find Scripts", select it.
  • If a file dialog opens up, tell it where to find the Scripts directory that you installed.
    • On Windows this will usually be in "C:\Program Files\GanttPV\".
    • On the Macintosh this will be in the directory where you copied the Scripts folder when you installed GanttPV
  • Open the "Scripts" menu again. You should see that script names have been added to the menu. If they haven't select "Find Scripts" again and make sure you select the Scripts directory.
  • Select "Edit Project Name". A dialog box will open that contains the old project name. If the dialog box does not open, make sure that you have selected the "New Project" row in the main window then try again.
  • Type in the new project name and click "OK"
  • Be sure to save your changes

Adding another project?

GanttPV allows you to add as many projects as you wish in the same file. To add another project return to the main window and click on the "New Project" icon . Select the new project row. Click on the "New Report" button. Add a new "Task" report. Insert the columns you need. Then start entering tasks.

Other features of GanttPV

GanttPV has many features beyond those described in this tour. See scripts for more examples. Some of the important features are:

  • Workload Management - Calculate effort hours per resource, task, and assignment for each day and week.
  • Float Tracking - Display Free Float and Total Float for each task.
  • Additional Time Scales - Insert columns that will display week, month, and quarter time scales.
  • Task Checklists - Add checklists to tasks.
  • Copy Selection to Clipboard - Copy cells, rows, or columns to clipboard for pasting into other applications.
  • Measurement Tracking - Monitor team productivity and expenses.
  • Followup Management - Track and prioritize follow up items for multiple projects.

What next?

This tour, while a good introduction to GanttPV, gives a very narrow view of project management. Visit the Simple Project Management web site for a better overall picture. They also have a nice section of valuable hints on Using GanttPV.

If you have questions about GanttPV or suggestions for improvements to the program, visit the GanttPV Forum. You may wish to register at the forum to reserve a name for your use (it will allow you to edit your posts). If not, you can still post questions and comments to the forum. Just enter your name and leave the password field blank when you have a new topic or message ready to post.