Timesheet

Starting and stopping records

Re-start timesheet records

  • Click one of your last activities in the dropdown in the upper toolbar - this will start a record for the same customer/project & activity “now”
  • Click the restart action from one of the records in your timesheet - this will start a record for the same customer/project & activity “now” and copy description and tags

Start new records

  • Clicking the big play button in the toolbar (if no record is active right now)
  • Click the “+” action is the upper right page actions to open the “edit new record” modal
  • Select a time-range in the calendar (deactivated if the timeclock-mode is active)
  • Click a day in the calendar (deactivated if the timeclock-mode is active)

Stop records

  • Click the stop button in the “active records” dropdown in the upper toolbar
  • Click the stop action in the running record in your timesheet
  • Save a running record after setting an end date (deactivated if the timeclock-mode is active)

Duration format

Please read the full documentation about accepted inputs for the duration format.

Important:

  • using 0 or 00:00 as duration will also stop the entry with a duration of zero seconds
  • to create a running entry the end and duration field needs to be empty

Exported records

Exported records will be locked to prevent manipulation of cleared data.

The permission edit_exported_timesheet does allow editing and deletion of these locked entries nevertheless, which by default is given to users with ROLE_ADMIN and ROLE_SUPER_ADMIN.

The export state can be set manually or via the invoice and export screens.

Billable vs. not billable

Since version 1.14 you can define whether a timesheet record is billable or not.

None-billable timesheets are excluded from invoices and budget calculations.

Please read the billable documentation to understand the billable flag.

The search supports filtering by the fields:

  • user (only in team timesheets)
  • daterange
  • customer
  • project
  • activity
  • tags
  • state (running / stopped)

Besides these filters, you can query for a free search term, which will be searched in the fields:

  • description

Additionally, you can filter for custom fields by using a search phrase like location:homeoffice. This would find all entries with the custom field location matching the term homeoffice.

The search terms will be found within the full value, so searching for office would find:

  • I love working in my office
  • Office
  • This office is beautiful
  • Our offices are very noisy

Attention: checkboxes have the values 0 (not checked) and 1 (checked).

You can mix the search term and use multiple meta-field queries:

  • location:homeoffice hello - find all entries matching the search term hello with the custom field location matching the term homeoffice
  • location:homeoffice contract:fulltime - find all entries with the custom field combination: location matching homeoffice and contract matching fulltime
  • expired:0 finds all items whose expired checkbox is off

There are also special operators, which can be used in conjunction with custom fields (since Kimai 1.19.1):

  • The ` ` empty string (e.g. location:) will find all entries whose value in the location field is either empty or not existing
  • The ~ search term (e.g. location:~) will find all entries that are missing the custom field (created before the field was created)
  • The * search term (e.g. location:*) will find all entries that have any value in the location field (basically the opposite of ~)