A Kimai 2 plugin, which allows to configure additional fields for timesheets, customers, projects and activities.
Configure additional fields for the following entities:
Expenses- see Expenses plugin
The custom fields will be shown on the “create and edit entity” forms and can have the following types:
string(simple text field)
integer(number without decimal point)
number(number with decimal places)
language(dropdown of languages, shown in the users language)
currency(dropdown of currencies, shown in the users language)
country(dropdown of countries, shown in the users language)
color(browser specific input element to select a color)
textarea(multi-line text field)
You can create as many fields as you want for each data type, where each field:
The custom-field data is then available in:
A select box that is very useful if you want to generate automatic invoices via command line / cronjobs.
The Kimai command
bin/console kimai:invoice:create supports invoice templates via custom-field (see docs).
The option parameter
--template-meta takes the internal name of the custom field that will identify the invoice template to be used.
Use the value
1 as default value for a pre-checked box or
0 for an unchecked box.
If a checkbox is marked as mandatory, the user has to check it in order to submit the form.
Lets you create a dropdown. You have to add the entries as comma separated list into the default-value field.
For example a list consisting of fruits would look like this:
As the first entry is always pre-selected in that case, you can add an empty field to the dropdown by starting the list
with a leading
, like this:
,Banana,Apple,Orange,Pineapple,Peach. Combined with the mandatory flag, this will force
your users to select an entry from the list of fruits to be able to submit the form.
Please make sure to use the correct version of the plugin, which must be compatible with your Kimai version:
|Bundle version||Minimum Kimai 2 version|
|1.10 - 1.11||1.9|
|1.8 - 1.9||1.7|
|1.6 - 1.7||1.6.2|
|1.3.2 - 1.4.1||1.4|
|1.1.1 - 1.2||1.1|
Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:
The file structure needs to like like this afterwards:
var/plugins/ ├── MetaFieldsBundle │ ├── MetaFieldsBundle.php | └ ... more files and directories follow here ...
After uploading the files, Kimai needs to know about the new plugin. It will be found once the cache was re-built. Call these commands from the Kimai directory:
bin/console kimai:reload --env=prod
FTP users: please have a look at this documentation.
If you are running an older version of Kimai (before 1.8) you have to use:
bin/console cache:clear --env=prod bin/console cache:warmup --env=prod
You might have to set file permissions afterwards:
You have to allow PHP (your webserver process) to write to
var/ and it subdirectories.
Here is an example for Debian/Ubuntu (to be executed inside the Kimai directory):
chown -R :www-data . chmod -R g+r . chmod -R g+rw var/ chmod -R g+rw public/avatars/
Test Kimai before executing these commands (they are likely not required in a shared-hosting environment).
You probably need to prefix them with
sudo and the group might be called different than
Run the following command:
This will install all required databases.
When logged in as
SUPER_ADMIN, you should now see the custom-fields administration screen at
If this was successful, you can now think about giving permissions to other users as well.
This bundle ships a new permission, which limit access to certain functions:
configure_meta_fields- allows to administrate the custom field definitions
By default, it is assigned to each user with the role
Read how to assign these permission to your user roles in the permission documentation.
This is a proposal if you use the bundle in a multi-user environment:
kimai: permissions: roles: ROLE_SUPER_ADMIN: ['configure_meta_fields'] ROLE_ADMIN: ['configure_meta_fields']
After changing the permissions in local.yaml, you need to clear the application cache.
Records detailed change/audit logs for timesheets, customers, projects and activities and displays them in a per-item timeline.
Create free configurable additional (optional and mandatory) fields for timesheets, customers, projects and activities in various formats.
Keep track of your expenses based on customer, project and activity. These spendings can be categorized and included in your invoices.
Create tasks, start/stop/pause them, assign them to users and teams - a todo-list management plugin that is connected to your time-tracker and features two new dashboard widgets
|Custom CSS plugin||
|Installation & Update support||
|Recalculate rates plugin||