Activities in Kimai
Activities in Kimai are meant to explain the kind of work done for a specific task/timesheet.
Activities can have two different types:
Activities can be assigned to a project, which means you can only choose them if the linked project is active.
Activities can be global, meaning they are not linked to a project and can be used in combination with every project.
Examples for global activities could be:
- phone calls
- administrative tasks
These examples might vary heavily between different industries, the main usage are recurring tasks throughout all of your projects.
Changing the activity type
After an activity was created it cannot be re-assigned to (another) project.
The only change that is possible: project specific activities can be made global by selecting the empty option from the project dropdown. This change is not reversible.
Global activities cannot be assigned to a project.
The reason for all above restrictions are existing timesheets, which would result in wrong assignments and/or wrong rates otherwise.
Here is the solution/workaround that you have to apply for wrongly assigned activities:
- Create the new activity
- Go to the timesheet section for all users
- Filter all timesheet for the old activity (increase the page size if there are more than 50 results)
- Click the checkbox in the upper left of the result table to check all timesheet rows
- Now choose “Edit” from the dropdown below the table for batch-update mode
- In the batch-update screen: choose the project and new activity and save
- After there is no more timesheet with the old activity you can safely delete it
Each activity can be assigned its own color, for easier identification in various screens.
If no color has been selected, the project color will be used. If that is not defined as well, Kimai will fall back to the customer color and finally to the default color.
Billable configuration of a Activity defines whether new timesheet (in
Automatic mode) will be billable.
Please read the billable documentation to understand the
Budgets help you to watch your progress and to stay within contract boundaries.
If the System > Settings configuration
Allow overbooking of stored budgets is not active,
Kimai will prevent that records will be created, which would go beyond your configured budgets.
Currently, the visibility of budgets cannot be limited independently. So if you want to show progress to your users, you cannot show only the time budget (this will be changed in the future).
budget_activity are used
to check if the logged-in user can see the budgets.
Kimai knows two budget types. The default budget type is
lifetime (which is used if the
budget type is empty),
the other available budget type is
Lifetime budget- uses all records of all times to calculate progress and budget usage
Monthly budget- uses all records of the selected month to calculate progress and budget usage
No matter which budget type is used, it does not influence invoice amounts. There is no automatism that will add a monthly budget to your invoice (you have to create expenses or time records for that).
Monthly budgets are used for every month, no matter how many days are recorded. Kimai does not take range limits into account to calculate partial budgets (e.g. project start/end or the first record created for a customer).
Money budgets will be used to calculate reports.
For Kimai there is no difference between money and time budgets. If there are multiple people with a different hourly rate working on the same tasks, then money and time budget will differ in their outcome.
Only billable records will be used to calculate the remaining budget.
The time budget should be entered in the format
hh:mm or decimal
Time budgets will be used to calculate reports.
If you are using money budget and want to show progress to your users, it is a good idea to calculate the hourly rate by using
money budget / average hourly rate.
Only billable records will be used to calculate the remaining budget.
You can configure prices on different levels in Kimai. It starts from the user hourly prices and goes from Customers to Projects and Activities. Please read the price documentation to find out more how rates are calculated.
On the detail page of the selected item (which you find by clicking a row in the listing table or select
Show from the dropdown menu)
you find the
Hourly price section. By default, you see the message
No prices have been configured.
You configure new price rules by clicking the
+ button in the upper-right of the
A user needs the two permissions to be able to see and edit prices:
- one of:
- one of:
Edit price screen
edit price screen has four settings:
User- the user this price applies to - if no user is chosen it applies to everyone without explicit personal rule
Price- the price to be charged (per hour)
Internal price- the internal price (or “costs” if you will) to apply (per hour); if this is not specified, the normal price is used for calculation.
Fixed price- if this is ticked, each time record gets the configured
Pricevalue applied, regardless of the record duration
If no user was chosen, this rule applies to every user, except those who have a explicit
User specific price configured.
User specific price
Every rule the defines a user is a
user specific price and those always win over
Catch-all price configurations.
The following example contains two price rules:
The first one is a
Catch-all price that applies to everyone who is recording times for this activity.
So every hour counts with 50 € towards the budget of this activity and has internal costs of 25 €.
Every recorded hour has a gross margin of 25 € / hour.
The second rule applies to the user
DY who (as only user) has a
User specific price for this activity.
Even though she has a higher internal cost of 45 € / hour, her work earns 85 € / hour, which leads to a gross margin of 40 € / hour.
By toggling the visibility on an activity, you:
- hide the activity from all drop-downs, regardless of their visibility state
- hide the activity from the default list in the activities administration
- all currently linked objects will still show the activity in the dropdown as pre-selected option
- you can still change the activity on timesheet record, which used it before
- you cannot create new timesheet records for this activity
- you can still access the hidden entries by changing the visibility filter on the toolbars
The visibility filter in the toolbar has three state:
- Visible: Yes (all activities that are “really” visible, meaning: the activity, linked project and customer are visible)
- Visible: No (all activities that are exclusively invisible by their own visibility state)
- Visible “empty” (all activities: not filtering on their own, the projects or customers visibility)
Filter and search
The search supports filtering by the fields:
Besides these filters, you can query for a free search term, which will be searched in the fields:
Additionally, you can filter for custom fields by using a search phrase like
This would find all entries with the custom field
location matching the term
The search terms will be found within the full value, so searching for
office would find:
I love working in my office
This office is beautiful
Our offices are very noisy
Attention: checkboxes have the values
0 (not checked) and
You can mix the search term and use multiple meta-field queries:
location:homeoffice hello- find all entries matching the search term
hellowith the custom field
locationmatching the term
location:homeoffice contract:fulltime- find all entries with the custom field combination:
expired:0finds all items whose
There are also special operators, which can be used in conjunction with custom fields (since Kimai 1.19.1):
location:) will find all entries whose value in the
locationfield is either empty or not existing
~search term (e.g.
location:~) will find all entries that are missing the custom field (created before the field was created)
*search term (e.g.
location:*) will find all entries that have any value in the
locationfield (basically the opposite of
Deleting an activity
Activities can be deleted from the Activity listing view via
Administration > Activities.
Usually it is not a good idea to delete a used activity, consider to switch the visibility instead to hide it.
Right-click on a row (or open the action dropdown at the end of it) to see all available actions for the selected activity.
The last action in the list is
Delete - once you click it you wil get a feedback screen which either tells you that the
activity is unused and can be safely deleted, or it will show you quick stats of the activity and then ask you to re-assign
the attached timesheets to another activity.