Microsoft Teams Integration
Helps to organize project related files in Microsoft Teams
Klein IT Solutions
Microsoft Teams Integration for Kimai
A Kimai plugin that automatically creates customer and project folders inside a selected Microsoft Team.
Based on your Kimai customer and project data, the plugin generates the corresponding folder structure within the chosen Team — fully automated and reliable.
Optimize your document organization, reduce manual work, and ensure your team always has the correct folder at the right time.
Perfect for agencies, IT service providers, and organizations using Microsoft Teams as their main collaboration platform.
Automated folder structure in Microsoft Teams
The plugin automatically creates:
- customer folders
- project folders
- structured subfolders inside a chosen base directory
Everything is handled via the Microsoft Graph API without manual interaction.
What’s included?
- a new console command
ms-teams:sync-foldersfor creation of customer and project folders - configuration validation (Team ID, folder path)
- support for
.envvariables:GRAPH_TENANT_IDGRAPH_CLIENT_IDGRAPH_CLIENT_SECRET
System Requirements
You need:
- a valid Azure App Registration
- the ability to set environment variables via
.env - access to Microsoft Graph API
Setup steps after Installation
- Create a
.envfile inside your Kimai installation and add:
GRAPH_TENANT_ID=
GRAPH_CLIENT_ID=
GRAPH_CLIENT_SECRET=
If you are using Docker, add the variables to your docker-compose.yml file or set the following flags
-e GRAPH_TENANT_ID=''
-e GRAPH_CLIENT_ID=''
-e GRAPH_CLIENT_SECRET=''
when starting the container.
-
Configure the desired team and folder path under:
Kimai → System → Microsoft Teams -
Run the sync command if needed:
bin/console ms-teams:sync-folders
This creates all customer and project folders with your selected Microsoft Team.
Compatibiliteit
De volgende tabel bevat een vergelijking tussen de plugin en de vereiste minimale Kimai-versie.
| Bundelversie | Minimale Kimai-versie |
|---|---|
| 1.0.0 | 2.44.0 |
Installatie
Bestanden kopiëren
Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:
var/plugins/TeamsIntegrationBundle/The file structure needs to look like this afterwards:
var/plugins/
├── TeamsIntegrationBundle
│ ├── TeamsIntegrationBundle.php
| └ ... more files and directories follow here ...Cache wissen
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 --env=prod
It is not advised, but in case the above command fails you could try:
rm -r var/cache/prod/*
You might have to set file permissions afterwards:
Adjust 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/
You might not need these commands in a shared-hosting environment.
And you probably need to prefix them with sudo and/or the group might be called different from www-data.
Database aanmaken
Run the following command:
bin/console ms-teams:sync-foldersThis will create the required database tables and update them to the latest version.
If you see an error like There are no commands defined in the "kimai:bundle:XYZ" namespace.,
then either the directory has a wrong name (must be var/plugins/TeamsIntegrationBundle/) or you forgot to clear the cache (look above).
Updates
Updating the plugin works exactly like the installation:
- Delete the directory
var/plugins/TeamsIntegrationBundle/ -
Execute all installation steps again:
- Bestanden kopiëren
- Cache wissen
- Update database with
bin/console ms-teams:sync-folders
Kimai