Kimai has multiple ways of importing data. Some are pre-made commands, but for more complicated use-cases the API should be used instead.
There is a dedicated chapter about migrating data from Kimai v1.
The kimai:import:customer
command will import customer.
bin/console kimai:import:customer customer.csv
Supported attributes (field names are case-insensitive):
Customer attribute | Supported field names |
---|---|
Name | project, projectname, project name, project-name, name |
Account | number, account, customer number, customer account |
Company name | company, company name, company-name |
Description | description, comment |
email, e-mail, e mail | |
Country | country |
Vat-ID | vat, vat-id, vat id, tax-id, tax id |
Address | address |
Contact | contact |
Currency | currency |
Timezone | timezone |
Phone | phone |
Mobile | mobile |
Fax | fax |
Homepage | homepage |
Color | color |
Budget | budget |
Time budget | time budget, time-budget |
Visible | visible |
Meta fields | meta.xxx |
Possible options:
--importer=default
- the importer to use (supported: default, grandtotal) - default: default--reader=csv
- the reader to use (supported: csv, csv-semicolon) - default: csv--no-update
- if you want to create new customer, but not update existing onesYou can see all option by calling bin/console kimai:import:customer --help
.
Import a minimum CSV example file (using semicolon as delimiter) with:
bin/console kimai:import:customer customer.csv --reader=csv-semicolon
The customer.csv
file:
Name;Company
Acme,Acme university Ltd.
A multi column-example, which will leave existing customers alone during import:
bin/console kimai:import:customer customer.csv --reader=csv --no-update
The customer.csv
file:
Name,Company,Number,Comment,Phone,Timezone,Meta.XYZ
Acme,Acme university Ltd.,12367800,A longer comment to talk about the project,0011234567890,Europe/Berlin,hello foo 123
There is a plugin for Mac invoicing software Grandtotal, which adds support for Kimai.
In case your leading system for customers is Grandtotal, you can import customers from a Grandtotal CSV export into Kimai.
Grandtotal calls CSV exports Numbers
in the export screen.
bin/console kimai:import:customer grandtotal.csv --reader=csv-semicolon --importer=grandtotal
Attention: Grandtotal exports its data with column names in the UI language (just like Kimai).
Kimai only supports imports for GT exports from the languages english and german, so you might have to change it in Settings / Languages / User interface
.
The kimai:import:project
command will import projects and create missing customers on the fly.
An empty team (with the projects name) can be created for each project, in which case the teamlead
options needs to be set.
bin/console kimai:import:project project.csv
Supported attributes (field names are case-insensitive):
Project attribute | Supported field names |
---|---|
Name | project, projectname, project name, project-name, name |
Customer name | customer, customername, customer-name, customer name |
Description | description, comment |
Order number | ordernumber, order-number, order number |
Order date | orderdate, order-date, order date |
Color | color |
Budget | budget |
Time budget | time budget, time-budget |
Visible | visible |
Meta fields | meta.xxx |
Possible options:
--importer=default
- the importer to use (supported: default) - default: default--reader=csv
- the reader to use (supported: csv, csv-semicolon) - default: csv--teamlead=USERNAME
- if you want to create empty teams for each project pass an existing username for the new teamlead (teams will be assigned to the projects, but not to the customers)--no-update
- if you want to create new projects, but not update existing onesYou can see all option by calling bin/console kimai:import:project --help
.
Import a minimum CSV example file (using semicolon as delimiter) with:
bin/console kimai:import:project project.csv --reader=csv-semicolon
The project.csv
file:
Name;Customer
Test project;Test customer
A multi column-example, creating teams for new projects and leaving existing projects alone will be imported with:
bin/console kimai:import:project project.csv --reader=csv --teamlead=anna_admin --no-update
The project.csv
file:
Name,Customer,Comment,OrderNumber,OrderDate,Meta.XYZ
My great project,Acme university,A longer comment to talk about the project,1234567890,2019-08-29,hello foo 123
This will import timesheets and create these elements on the fly:
Users need to exist before (mainly because the user timezone setting will be used to import the timesheets).
bin/console kimai:import:timesheet --timezone=UTC --activity=global --delimiter=";" --customer="Imported customer" ~/Downloads/import-timesheets.csv
You can see all option by calling bin/console kimai:import:timesheet --help
.
"Date","From","To","Duration","Rate","User","Customer","Project","Activity","Description","Exported","Tags","Hourly rate","Fixed rate"
"2020-05-04","15:50","17:51","7260","231.92","user@example.com","Customer LLC","My project", "Testing","some work has been done","0","foo,bar","115.00","0"
Y-m-d
0
or 1
(0 = new, 1 = exported)There is also a user contributed plugin for importing CSV data, which can be found here: https://github.com/neontribe/KimaiCvsImportBundle