Logo - Keleo


Software development company founded by Kevin Papst

Try it

You can test this plugin in our dedicated plugin demo:

  • Username: susan_super
  • Password: kitten

Find more testing accounts here.

Click to enlarge
Create free configurable additional fields for timesheets, customers, projects, activities and users.
Last update: 25 Jun 2019

A Kimai 2 plugin, which allows to configure additional fields for timesheets, customers, projects and activities.


Configure additional fields in various formats for the following data types:

  • Timesheets
  • Customers
  • Projects
  • Activities
  • User

You can create as many fields as you want for each data type, where each field:

  • is either optional or mandatory
  • has its own visibility, so the access can be restricted:
    • to certain customer/project/activity combinations (eg. a “location” field will only be shown for customer X and project Y)
    • to users with certain permissions or roles
  • can be described with a name and help text
  • has a maximum length of 255 character

The custom fields will be shown on the “create and edit entity” forms and can have the following types:

  • string
  • integer
  • number
  • duration
  • money
  • checkbox
  • language
  • currency
  • country
  • color
  • date
  • datetime
  • boolean (use: 1 = checked/true or 0 = unchecked/false)
  • choice-list (add entries comma separated into default-value field)

The custom-field data is then available in:

  • Data-tables will display all visible fields
  • Exports (HTML and Spreadsheets include all visible fields)
  • Timesheet exports (include visible timesheet fields)
  • API (collections and entities)
  • Invoice templates (custom templates only)

Be aware:

  • Restricted fields won’t be visible on the create forms, as Kimai initially can’t know if the rule will apply. In these cases the form will only be shown in the edit forms.
  • Sensitive data can be configured as “invisible”, so it will not show up in the above mentioned places.

More information about custom fields can be found in the documentation.



This plugin is compatible with the following Kimai releases:

Bundle version Kimai 2 version
1.8 1.7
1.7 1.6.2
1.6 1.6.2
1.5 1.6
1.4.1 1.4
1.4 1.6 (due to a mistake)
1.3.2 1.4
1.2 1.1, 1.2, 1.3
1.1.1 1.1
1.0 1.0, 1.0.1


Copy files

Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory: var/plugins/MetaFieldsBundle/

The file structure needs to like like this afterwards:

├── MetaFieldsBundle
│   ├── MetaFieldsBundle.php
|   └ ... more files and directories follow here ...

Clear cache

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:

How to reload Kimai cache

bin/console kimai:reload

FTP users: please have a look at this documentation.

Before Kimai 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:

Fix Kimai file permission

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 www-data.

Create database

Run the following command:

bin/console kimai:bundle:metafields:install

This will install all required databases.


When logged in as SUPER_ADMIN, you should now see the custom-fields administration screen at /en/expenses/.

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 ROLE_SUPER_ADMIN.

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:

            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.



All items by Keleo

Audit-Trail plugin

Records detailed change/audit logs for timesheets, customers, projects and activities and displays them in a per-item timeline.

Custom-fields plugin

Create free configurable additional (optional and mandatory) fields for timesheets, customers, projects and activities in various formats.

Expenses plugin

Keep track of your expenses based on customer, project and activity. These spendings can be categorized and included in your invoices.

Kiosk plugin

Attendance time-tracking in an environment, where the user has no access to Kimai (eg. in a warehouse) by using a barcode scanner to start and stop timesheets.

Task management plugin

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
Fail2Ban plugin
Installation & Update support
upon request
Recalculate rates plugin