Desktime

Learn how to use Desktime with Composio

Overview

SLUG: DESKTIME

Description

DeskTime is an automatic time tracking software that helps teams and freelancers monitor productivity, manage projects, and analyze work habits.

Authentication Details

generic_api_key
stringRequired

Connecting to Desktime

Create an auth config

Use the dashboard to create an auth config for the Desktime toolkit. This allows you to connect multiple Desktime accounts to Composio for agents to use.

1

Select App

Navigate to the Desktime toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4desktime_auth_config_id = "ac_YOUR_DESKTIME_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Desktime for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, desktime_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Desktime toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["DESKTIME"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Project with Optional Task

Description

Tool to create a new project with an optional initial task. use when you need to set up a new desktime project programmatically.

Action Parameters

project
stringRequired
task
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Account Details

Description

Tool to retrieve detailed information about the authenticated user's company account. use after confirming the api key is valid to fetch company name, work settings, account timezone, and timestamp.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get All Company Employees

Description

Tool to list all employees in the company, including their roles and statuses. use after confirming valid credentials to fetch the organization’s roster.

Action Parameters

date
string
period
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Employee Data

Description

Tool to fetch data for all employees within the company. use after verifying the api key is valid.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Employee Projects

Description

Tool to retrieve information about projects assigned to employees, including project names, durations, and statuses. use when you need to fetch per-employee project tracking data for a specific date.

Action Parameters

date
id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Projects List

Description

Tool to retrieve all active projects for the company, including related tasks. use when you need projects overview after authentication.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Ping DeskTime API

Description

Tool to check the api's availability and confirm the service is operational. use when you need to verify that the desktime api is reachable and responsive.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Start Project Task

Description

Tool to start tracking time for a specified project and optional task. use when you need to begin timing work on a project and optionally tag a task.

Action Parameters

project
stringRequired
task
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Stop Project Task

Description

Tool to stop tracking time for a specified project and optional task. use when you have finished work and need to record end time.

Action Parameters

project
stringRequired
task
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Employee Projects and Apps

Description

Tool to retrieve an employee's tracked projects and application usage. use when you need combined project/app time data for a given employee and date (defaults to current user and today). example: "get projects and apps for employee 711867 on 2025-07-28."

Action Parameters

date
string
id
string

Action Response

data
objectRequired
error
string
successful
booleanRequired