Everhour

Learn how to use Everhour with Composio

Overview

SLUG: EVERHOUR

Description

Everhour is a time tracking and expense management software equipped with budgeting, forward resource planning, expense tracking, dashboards, and reports.

Authentication Details

generic_api_key
stringRequired

Connecting to Everhour

Create an auth config

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

1

Select App

Navigate to the Everhour 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
4everhour_auth_config_id = "ac_YOUR_EVERHOUR_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 Everhour 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, everhour_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 Everhour 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=["EVERHOUR"])
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 Client

Description

Tool to create a new client in everhour. use when you need to add a client before tracking time or assigning it to projects.

Action Parameters

business_details
string
name
stringRequired
projects
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete a client

Description

Tool to delete a client. use when you need to permanently remove a client from everhour after confirming the client id.

Action Parameters

client_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Clients

Description

Tool to list all clients. use when you need an overview of workspace clients.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Expenses

Description

Tool to retrieve all expenses. use when you need to review expense records across your workspace.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Client by ID

Description

Tool to retrieve a specific client by id. use when you need detailed client information after obtaining the client's id.

Action Parameters

client_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Project

Description

Tool to retrieve a specific project. use after you have the project id if you need its details.

Action Parameters

projectId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Section

Description

Tool to retrieve a specific section. use when you need detailed section data by its id.

Action Parameters

sectionId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Authenticated User Profile

Description

Tool to retrieve profile information of the authenticated user. use after providing api key to fetch current user's profile details.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Invoices

Description

Tool to list all invoices. use when you need to retrieve every invoice in your everhour workspace after authenticating with your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List all projects

Description

Tool to list all projects. use when you need to retrieve every project accessible by your authenticated api key.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Sections

Description

Tool to list sections within a project. use when you need to retrieve all sections for a specified project after authenticating with your api key.

Action Parameters

projectId
stringRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Tags

Description

Tool to list all tags. use when you need to retrieve every tag in your everhour workspace after authenticating with your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Team Members

Description

Tool to list all team members. use when you need to retrieve your everhour team's current roster after authenticating with your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Create Project

Description

Tool to create a new project in everhour. use after gathering project details to persist a new project.

Action Parameters

archived
boolean
billable
boolean
budget
number
client
string
color
string
internal
boolean
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete a project

Description

Tool to delete a project. use when you need to permanently remove a project from everhour after confirming the project id.

Action Parameters

project_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Section

Description

Tool to create a new section in a project. use when you need to organize tasks under an existing project after confirming the project id.

Action Parameters

name
stringRequired
project_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete a section

Description

Tool to delete a section. use when you need to permanently remove a section from everhour after confirming the section id.

Action Parameters

section_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Task

Description

Tool to create a new task in a project. use when you need to quickly add a task under a specific project id. example: "create a task named 'write tests' in project proj 123456".

Action Parameters

assignee
string
estimate
string
name
stringRequired
parent
string
positions
object
projectId
stringRequired
section
string
tags
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Start Timer

Description

Tool to start a new timer for a task. use when you need to begin tracking time on a specific task.

Action Parameters

task
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Client

Description

Tool to update an existing client. use when you need to modify client details such as name, hourly rate, or archived status after confirming the client id.

Action Parameters

archived
boolean
hourly_rate
number
id
stringRequired
name
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update an existing project

Description

Tool to update an existing project. use after confirming the project id when modifying project details.

Action Parameters

billable
boolean
billingMethod
string
budget
number
budgetIncludeExpenses
boolean
budgetReset
string
budgetType
string
hourlyRate
number
name
string
note
string
project_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Expense Categories

Description

Tool to list all expense categories. use when you need to retrieve every category available for categorizing expenses after authenticating with your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Webhooks

Description

Tool to list all webhooks. use when you need to retrieve every configured webhook for the account after authenticating with your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Teams

Description

Tool to list all teams. use to retrieve available teams for your api key.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired