The TaskJuggler User Manual

Project Management beyond Gantt Chart drawing
Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 by Chris Schlaeger <>
Generated on 2023-02-25

This manual covers TaskJuggler version 3.7.2.

1 Introduction
1.1 About TaskJuggler
1.2 License and Copyright
1.3 Features and Highlights
1.3.1 Basic Properties
1.3.2 Advanced Scheduling
1.3.3 Accounting
1.3.4 Reporting
1.3.5 Scaling and Enterprise Features
1.3.6 Web Publishing and Groupware Functions
1.4 TaskJuggler on the Web
1.5 TaskJuggler 2.x Migration
1.6 Using TaskJuggler 2.x and TaskJuggler 3.x in parallel
1.7 Reporting Bugs and Feature Requests
2 Installation
2.1 Requirements
2.1.1 Supported Operating Systems
2.1.2 Other required Software
2.2 Installation Steps for Users
2.2.1 The easy way System Wide Installation Installation into a local Directory
2.2.2 The manual way
2.3 Update from older TaskJuggler 3.x versions
2.4 Installing TaskJuggler from the Git Repository
2.5 Quickly switching between various TaskJuggler 3.x versions
2.6 Installing a newer Ruby version
2.7 Installing the Vim Support
2.8 How to Contribute
2.8.1 Why contribute?
2.8.2 Preparing a contribution
2.8.3 Creating a Patch
2.8.4 Contributing to the User Manual
2.8.5 Contributing to the Test Suite
2.8.6 Contributing to the Ruby code
2.8.7 Some final words to Contributors
3 Getting Started
3.1 Basics
3.2 Structure of a TJP File
4 The Tutorial: Your first Project
4.1 Starting the project
4.2 Global Attributes
4.3 Macros
4.4 Declaring Flags
4.5 Declaring Accounts
4.6 Declaring Resources
4.7 Specifying the Tasks
4.8 Specifying Milestones
4.9 Visualizing the Project
5 The TaskJuggler Syntax
5.1 Understanding the Syntax Reference
5.1.2 ID
5.1.4 STRING
5.2 Predefined Macros
5.3 Environment Variable Expansions
5.4 Rich Text Attributes
5.4.1 Block Markups
5.4.2 In-Line Markups
5.4.3 Block and Inline Generators
5.5 List Attributes
6 The TaskJuggler Software
6.1 tj3
6.2 tj3man
6.3 tj3d
6.4 tj3client
6.5 tj3webd
7 Day To Day Juggling
7.1 Working with multiple scenarios
7.2 Important and fall-back Tasks
7.3 Tracking the Project
7.4 Recording Progress
7.4.1 Using completion values
7.4.2 Using bookings
7.5 Tracking status and actuals
7.5.1 The reporting and tracking cycle
7.6 Implementing the status tracking system
7.6.1 Prerequisites
7.6.2 The Time Sheet Template Sender
7.6.3 The Time Sheet Receiver
7.6.4 Time Sheet Template Requests
7.6.5 Time Sheet Summaries
7.6.6 Updating the Project Plan
7.7 Recording actual Resource Usage
7.7.1 Status Sheets
7.7.2 The Status Sheet Template Sender
7.7.3 Requesting Status Sheet Templates
7.7.4 The Status Sheet Receiver
8 TaskJuggler Internals
8.1 How the Scheduler works
9 GNU Free Documentation License
A Syntax Reference
A.1 account
A.2 account (task)
A.3 accountprefix
A.4 accountreport
A.5 accountroot
A.6 active
A.7 adopt (task)
A.8 aggregate
A.9 alert
A.10 alertlevels
A.11 allocate
A.12 alternative
A.13 author
A.14 auxdir
A.15 auxdir (report)
A.16 balance
A.17 booking (resource)
A.18 booking (task)
A.19 caption
A.20 cellcolor (column)
A.21 celltext (column)
A.22 center
A.23 charge
A.24 chargeset
A.25 columnid
A.26 columns
A.27 complete
A.28 copyright
A.29 credits
A.30 currency
A.31 currencyformat
A.32 dailymax
A.33 dailymin
A.34 dailyworkinghours
A.35 date
A.36 date (extend)
A.37 definitions
A.38 depends
A.39 details
A.40 disabled
A.41 duration
A.42 efficiency
A.43 effort
A.44 effortdone
A.45 effortleft
A.46 email
A.47 enabled
A.48 end
A.49 end (column)
A.50 end (limit)
A.51 end (report)
A.52 end (timesheet)
A.53 endcredit
A.54 epilog
A.55 export
A.56 extend
A.57 fail
A.58 flags
A.59 flags (account)
A.60 flags (journalentry)
A.61 flags (report)
A.62 flags (resource)
A.63 flags (statussheet)
A.64 flags (task)
A.65 flags (timesheet)
A.66 fontcolor (column)
A.67 footer
A.68 formats
A.69 formats (export)
A.70 functions
A.71 gapduration
A.72 gaplength
A.73 halign (center)
A.74 halign (column)
A.75 halign (left)
A.76 halign (right)
A.77 hasalert
A.78 header
A.79 headline
A.80 height
A.81 hideaccount
A.82 hidejournalentry
A.83 hidereport
A.84 hideresource
A.85 hidetask
A.86 icalreport
A.87 include (macro)
A.88 include (project)
A.89 include (properties)
A.90 inherit (extend)
A.91 interval1
A.92 interval2
A.93 interval3
A.94 interval4
A.95 isactive
A.96 ischildof
A.97 isdependencyof
A.98 isdutyof
A.99 isfeatureof
A.100 isleaf
A.101 ismilestone
A.102 isongoing
A.103 isresource
A.104 isresponsibilityof
A.105 istask
A.106 isvalid
A.107 journalattributes
A.108 journalentry
A.109 journalmode
A.110 leaveallowance
A.111 leaves
A.112 left
A.113 length
A.114 limits
A.115 limits (allocate)
A.116 limits (resource)
A.117 limits (task)
A.118 listitem (column)
A.119 listtype (column)
A.120 loadunit
A.121 logicalexpression
A.122 logicalflagexpression
A.123 macro
A.124 managers
A.125 mandatory
A.126 markdate
A.127 maxend
A.128 maximum
A.129 maxstart
A.130 milestone
A.131 minend
A.132 minimum
A.133 minstart
A.134 monthlymax
A.135 monthlymin
A.136 navigator
A.137 newtask
A.138 nikureport
A.139 note (task)
A.140 novevents
A.141 now
A.142 number (extend)
A.143 numberformat
A.144 onend
A.145 onstart
A.146 opennodes
A.147 outputdir
A.148 overtime (booking)
A.149 period (column)
A.150 period (limit)
A.151 period (report)
A.152 period (task)
A.153 persistent
A.154 precedes
A.155 priority
A.156 priority (timesheet)
A.157 project
A.158 projectid
A.159 projectid (task)
A.160 projectids
A.161 projection
A.162 prolog
A.163 properties
A.164 purge
A.165 rate
A.166 rate (resource)
A.167 rawhtmlhead
A.168 reference (extend)
A.169 remaining
A.170 replace
A.171 reportprefix
A.172 resource
A.173 resourceattributes
A.174 resourceprefix
A.175 resourcereport
A.176 resourceroot
A.177 resources (limit)
A.178 responsible
A.179 richtext (extend)
A.180 right
A.181 rollupaccount
A.182 rollupresource
A.183 rolluptask
A.184 scale (column)
A.185 scenario
A.186 scenario (ical)
A.187 scenarios
A.188 scenarios (export)
A.189 scenariospecific (extend)
A.190 scheduled
A.191 scheduling
A.192 schedulingmode
A.193 select
A.194 selfcontained
A.195 shift
A.196 shift (allocate)
A.197 shift (resource)
A.198 shift (task)
A.199 shift (timesheet)
A.200 shifts (allocate)
A.201 shifts (resource)
A.202 shifts (task)
A.203 shorttimeformat
A.204 sloppy (booking)
A.205 sloppy (projection)
A.206 sortaccounts
A.207 sortjournalentries
A.208 sortresources
A.209 sorttasks
A.210 start
A.211 start (column)
A.212 start (limit)
A.213 start (report)
A.214 startcredit
A.215 status (statussheet)
A.216 status (timesheet)
A.217 statussheet
A.218 statussheetreport
A.219 strict (projection)
A.220 summary
A.221 supplement
A.222 supplement (resource)
A.223 supplement (task)
A.224 tagfile
A.225 task
A.226 task (statussheet)
A.227 task (timesheet)
A.228 taskattributes
A.229 taskprefix
A.230 taskreport
A.231 taskroot
A.232 taskroot (export)
A.233 text (extend)
A.234 textreport
A.235 timeformat
A.236 timeformat1
A.237 timeformat2
A.238 timeoff (nikureport)
A.239 timesheet
A.240 timesheetreport
A.241 timezone
A.242 timezone (export)
A.243 timezone (report)
A.244 timezone (shift)
A.245 timingresolution
A.246 title
A.247 title (column)
A.248 tooltip (column)
A.249 tracereport
A.250 trackingscenario
A.251 treelevel
A.252 vacation
A.253 vacation (resource)
A.254 vacation (shift)
A.255 warn
A.256 weeklymax
A.257 weeklymin
A.258 weekstartsmonday
A.259 weekstartssunday
A.260 width
A.261 width (column)
A.262 work
A.263 workinghours (project)
A.264 workinghours (resource)
A.265 workinghours (shift)
A.266 yearlyworkingdays

Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 by Chris Schlaeger <>.TaskJuggler is a trademark of Chris Schlaeger.