Commands

Command line tool

Some functionality of Kimai can only be triggered via bash / command line.

Please run bin/console to see all available commands.

Stopping all timesheets

Since version 1.19.7 you can stop all running timesheets with the call of one command:

bin/console kimai:timesheet:stop-all

This will immediately stop all active records. Validations will NOT be executed, which normally takes place if entries are stopped manually!

You can run this command via cron-at regular intervals, e.g. to stop all forgotten timesheet records at midnight (crontab example).

0 0 * * * /var/www/kimai/bin/console kimai:timesheet:stop-all >> /dev/null

Reset forgotten password

If you lost your (admin) password and don’t have another admin account to reset it and deactivated the “forgot password” function, you can use the following console command:

bin/console kimai:user:password

Create invoices with cronjobs

Kimai comes with a command, which allows you to create invoices from the command line. When combined with a cronjob, you can automate your invoice creation.

Find all available options with the --help parameter:

bin/console kimai:invoice:create --help 

This command will create one invoice for every customer which had timesheets in this month. The invoice template that will be used is fetched from the customer meta-field inv_tpl (can be an ID or a template name):

bin/console kimai:invoice:create --user=susan_super --timezone=Europe/Berlin --by-customer --template-meta=inv_tpl 

This command will create one invoice for every project which had timesheets in January 2020. The invoice template that will be used for every invoice is Freelancer (PDF):

bin/console kimai:invoice:create --user=susan_super --timezone=UTC --by-project --template="Freelancer (PDF)" --start=2020-01-02 --end=2020-01-31

Hint: You can utilize the bash command date to calculate dynamic values, e.g. the entire current year:

--start=$(date --date "$(date +%Y-01-01) -30 day" +"%Y-%m-%d") --end=$(date --date "$(date +%Y-%m-01) -1 day" +"%Y-%m-%d")

Create exports with cronjobs

Available since 1.28.0

Kimai comes with a command, which allows you to create exports from the command line. When combined with a cronjob, you can automate your timesheet reporting.

Find all available options with the --help parameter:

bin/console kimai:export:create --help 

Create an Excel export for Customer with ID 1 and Projects with ID 15 and 17 for the current month and mark items as exported.

bin/console kimai:export:create --locale=de --template="xlsx" --customer=1 --project=15 --project=17 --set-exported

Create an export of all data in January 2020. The PDF will be stored in your home directory at ~/kimai-export/.

bin/console kimai:export:create --template="default.pdf.twig" --locale=es --directory=~/kimai-export/ --start="2020-01-01" --end="2020-01-31"

You can send export documents via email, e.g. to project management or directly to your customer:

bin/console kimai:export:create --customer=351 --template="xlsx" --locale=en --email=pm@example.com --email=customer@example.com --subject="Timesheet report" --body="Your monthly report is attached"
Top