# Everhour

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

- **Category:** time tracking software
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 38
- **Triggers:** 0
- **Slug:** `EVERHOUR`
- **Version:** 20260309_00

## Tools

### Create Client

**Slug:** `EVERHOUR_CLIENT_CREATE`

Creates a new client in Everhour for tracking billable work, invoicing, and project organization. Use this action when: - Setting up a new customer/client account for time tracking - Organizing projects under a specific client for billing purposes - Creating a client before generating invoices Note: Each project can only be assigned to one client. Attempting to assign a project that is already linked to another client will result in a 400 error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the client to create. This is the primary identifier shown in the Everhour UI. |
| `projects` | array | No | Optional list of project IDs (e.g., 'ev:123456789') to associate with this client. Note: Each project can only belong to one client; attempting to assign a project already linked to another client will fail. |
| `businessDetails` | string | No | Optional business details such as address, contact information, or other metadata for invoicing purposes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a client

**Slug:** `EVERHOUR_CLIENT_DELETE`

Tool to delete a client. Use when you need to permanently remove a client from Everhour after confirming the client ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_id` | string | Yes | The unique numeric ID of the client to delete. You can obtain this from the list clients action or from a previously created client. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Clients

**Slug:** `EVERHOUR_CLIENT_LIST`

Retrieves all clients in the Everhour workspace. Use this action to: - Get an overview of all clients and their IDs - Find client IDs for use with other client-related actions (e.g., get client, update client, delete client) - View client statuses (active/archived), associated projects, and invoice settings Returns a list of all clients with their full details including name, creation date, status, associated projects, and invoice configuration settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Clock In User

**Slug:** `EVERHOUR_CLOCK_IN`

Tool to clock in a user for time tracking. Use when you need to start a user's workday or shift in Everhour.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The unique numeric identifier of the user to clock in. You can obtain this from the authenticated user's profile using the Get User Profile action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Clock Out User

**Slug:** `EVERHOUR_CLOCK_OUT`

Tool to clock out a user for time tracking. Use when you need to end a user's workday or shift in Everhour.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The unique numeric identifier of the user to clock out. You can obtain this from the authenticated user's profile using the Get User Profile action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `EVERHOUR_CREATE_WEBHOOK`

Tool to create a new webhook for event notifications in Everhour. Use when you need to set up real-time notifications for specific events like task creation, timer starts, or client updates. The target URL must be accessible and respond to Everhour's validation request during setup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `events` | array | Yes | List of events to subscribe to. Valid event types include: 'api:client:created', 'api:client:updated', 'api:project:created', 'api:project:updated', 'api:project:removed', 'api:task:created', 'api:task:updated', 'api:task:removed', 'api:timer:started', 'api:timer:stopped', 'api:time:updated', 'api:section:created', 'api:section:updated', 'api:section:removed', 'api:estimate:updated' |
| `project` | string | No | Filter events by project ID. If set, only events from this project will trigger the webhook. |
| `targetUrl` | string | Yes | Target URL for webhook delivery. Must be a valid URL that responds to Everhour's validation request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `EVERHOUR_DELETE_HOOK`

Tool to delete a webhook. Use when you need to permanently remove a webhook from Everhour after confirming the webhook ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hook_id` | integer | Yes | The unique numeric ID of the webhook to delete. You can obtain this from the List Webhooks action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a timecard

**Slug:** `EVERHOUR_DELETE_TIMECARD`

Tool to delete a timecard for a user on a specific date. Use when you need to permanently remove time entries for a user on a particular date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | The date of the timecard to delete in YYYY-MM-DD format (e.g., 2026-02-14). |
| `user_id` | integer | Yes | The unique numeric ID of the user whose timecard should be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Discard Timesheet Approval

**Slug:** `EVERHOUR_DISCARD_TIMESHEET_APPROVAL`

Tool to discard a pending timesheet approval request. Use when you need to cancel or withdraw a previously submitted approval request for a timesheet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `timesheet_id` | integer | Yes | The unique numeric ID of the timesheet for which to discard the pending approval request |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Expenses

**Slug:** `EVERHOUR_EXPENSES_LIST`

Lists expense records from your Everhour workspace. Supports filtering by date range, user, project, category, and billable status. Use this to review expenses, generate reports, or find specific expense entries. Returns expense details including amount, category, date, and billable status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End date for filtering expenses (inclusive). Format: YYYY-MM-DD. Example: '2024-12-31' |
| `from` | string | No | Start date for filtering expenses (inclusive). Format: YYYY-MM-DD. Example: '2024-01-01' |
| `user` | integer | No | Filter by user ID. Use the user ID from team members list. |
| `limit` | integer | No | Maximum number of expenses to return. Used for pagination. |
| `offset` | integer | No | Number of expenses to skip. Used for pagination in combination with limit. |
| `project` | string | No | Filter by project ID. Use the project ID from projects list. |
| `billable` | boolean | No | Filter by billable status. Set to true to get only billable expenses, false for non-billable. |
| `category` | integer | No | Filter by expense category ID. Use the category ID from expense categories list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Client by ID

**Slug:** `EVERHOUR_GET_CLIENT`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_id` | string | Yes | The unique numeric identifier of the client. Can be obtained from the List Clients action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `EVERHOUR_GET_PROJECT`

Tool to retrieve a specific project. Use after you have the project ID if you need its details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `projectId` | string | Yes | ID of the project to retrieve. Use 'ev:' prefix followed by numeric ID for Everhour native projects (e.g., 'ev:192144450634449'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Section

**Slug:** `EVERHOUR_GET_SECTION`

Retrieve details of a specific section by its ID. Sections are used to organize tasks within Everhour projects. Use List Sections action first to get available section IDs for a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sectionId` | string | Yes | Numeric ID of the section to retrieve (e.g., '1323118') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Timecard

**Slug:** `EVERHOUR_GET_TIMECARD`

Tool to retrieve a specific timecard for a user on a date. Use when you need to get clock-in, clock-out, break time, and work time details for a team member on a particular day.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Specific date for the timecard entry in YYYY-MM-DD format |
| `user_id` | integer | Yes | Team member identifier whose timecard is requested |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Authenticated User Profile

**Slug:** `EVERHOUR_GET_USER_PROFILE`

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

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Webhook

**Slug:** `EVERHOUR_GET_WEBHOOK`

Retrieve details of a specific webhook by its ID. Returns the webhook's configuration including target URL, subscribed events, active status, and timestamps. Use this to inspect a webhook's settings or verify its configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hook_id` | integer | Yes | The unique numeric identifier of the webhook. Can be obtained from the List Webhooks action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Expense Categories

**Slug:** `EVERHOUR_LIST_EXPENSE_CATEGORIES`

Lists all expense categories available in your Everhour account. Returns category IDs needed to create or filter expenses.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhooks

**Slug:** `EVERHOUR_LIST_HOOKS`

Lists all webhooks configured for the Everhour account. Returns details about each webhook including its target URL, subscribed events, active status, and timestamps. Use this to review existing webhook configurations or verify webhook setup. No parameters are required.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Invoices

**Slug:** `EVERHOUR_LIST_INVOICES`

Retrieves all invoices from your Everhour workspace. Returns a list of invoice objects with details such as invoice number, client, project, amount, currency, status, and dates. Use this action to get an overview of all invoices for reporting, accounting, or tracking purposes.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List projects

**Slug:** `EVERHOUR_LIST_PROJECTS`

List all Everhour projects accessible by the authenticated user. Use this tool to: - Retrieve all projects in the workspace - Search for projects by name using the 'query' parameter - Filter projects by status ('open' or 'archived') - Filter projects by integration platform (e.g., 'ev', 'as', 'jira', 'trello') - Limit the number of results returned Returns a list of projects with details including name, ID, status, budget, billing, and more.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of projects to return. If not specified, returns all projects. |
| `query` | string | No | Search query to filter projects by name. Only projects matching this query will be returned. |
| `status` | string | No | Filter projects by status. Valid values: 'open' (active projects), 'archived' (archived projects), 'all' (both). |
| `platform` | string | No | Filter projects by integration platform (e.g., 'ev' for Everhour native, 'as' for Asana, 'jira' for Jira, 'trello' for Trello). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Sections

**Slug:** `EVERHOUR_LIST_SECTIONS`

Lists all sections within a specific Everhour project. Sections help organize tasks within a project. Returns section details including id, name, position, and status. Use this tool when you need to view, manage, or reference sections before creating tasks or organizing project work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `projectId` | string | Yes | The unique identifier of the project to list sections for. Can be obtained from the List Projects action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Tags

**Slug:** `EVERHOUR_LIST_TAGS`

List all tags in the Everhour workspace. Returns an array of all tags available in the workspace. Each tag contains: - id: Unique numeric identifier for the tag - name: Display name of the tag (e.g., 'high', 'medium', 'low') - color: Hex color code for visual display (e.g., '#ee7070') Use this action when you need to: - View all available tags for categorizing time entries - Get tag IDs for use in other API calls - Display tag options to users No parameters required.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Team Members

**Slug:** `EVERHOUR_LIST_TEAM_MEMBERS`

Retrieves all team members in the authenticated Everhour workspace. Returns detailed information for each member including their ID, name, email, role (admin/member/owner), status, avatar URLs, cost/billing rates, capacity, time tracking policies, and resource planner access permissions. Use this action to: - Get a list of user IDs for assigning tasks or tracking time - View team member roles and permissions - Check team member status (active/inactive) - Access billing information like cost and rate for team members

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Teams

**Slug:** `EVERHOUR_LIST_TEAMS`

Retrieves information about the authenticated team/workspace in Everhour. Returns comprehensive team details including: - Team ID and name - Owner information - Working days and hours configuration - Billing and subscription status - Available plan features - Enabled applications - Time tracking policies Use this action to: - Get the current team/workspace ID and name - Check team billing status and plan features - View team configuration and settings - Retrieve owner information Note: This returns info about the single workspace associated with the API key. Everhour operates in a single workspace context per API key.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Timecards

**Slug:** `EVERHOUR_LIST_TIMECARDS`

Tool to retrieve all team timecards with optional date filtering. Use when you need to get clock-in/out data and work hours for team members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End date for filtering timecards (format: YYYY-MM-DD). If not specified, returns up to current date. |
| `from` | string | No | Start date for filtering timecards (format: YYYY-MM-DD). Defaults to 2 weeks ago if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Timecards

**Slug:** `EVERHOUR_LIST_USER_TIMECARDS`

Tool to retrieve timecards for a specific user with optional date filtering. Use when you need to get clock-in/out data and work hours for a particular team member.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End date for filtering timecards (format: YYYY-MM-DD). If not specified, returns up to current date. |
| `from` | string | No | Start date for filtering timecards (format: YYYY-MM-DD). Defaults to 2 weeks ago if not specified. |
| `user_id` | integer | Yes | Numeric ID of the user whose timecards to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Timesheets

**Slug:** `EVERHOUR_LIST_USER_TIMESHEETS`

Tool to retrieve timesheets for a specific user. Use to get weekly time tracking data including daily time entries, task time, approvals, timecards, and time-off records. First use EVERHOUR_LIST_TEAM_MEMBERS to get the user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of weeks to retrieve. If not specified, returns all available timesheets. |
| `user_id` | integer | Yes | Unique identifier of the user whose timesheets to retrieve. Use EVERHOUR_LIST_TEAM_MEMBERS to get user IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `EVERHOUR_PROJECT_CREATE`

Tool to create a new project in Everhour. Use after gathering project details to persist a new project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the project |
| `client` | integer | No | Numeric ID of the client to associate with the project. Use List Clients to get available client IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a project

**Slug:** `EVERHOUR_PROJECT_DELETE`

Tool to delete a project. Use when you need to permanently remove a project from Everhour after confirming the project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Unique identifier of the project to delete. Format is 'ev:{numeric_id}' for native Everhour projects (e.g., 'ev:192144450634449'). Can be obtained from the List Projects action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Request Timesheet Approval

**Slug:** `EVERHOUR_REQUEST_TIMESHEET_APPROVAL`

Tool to request approval for a timesheet or approve a week (for admins). Use when you need to submit a timesheet for review or when an admin needs to approve submitted timesheets. Regular users can request approval for their own timesheets, while admins can directly approve timesheets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment` | string | No | Optional text feedback or comment to include with the approval request. This can be used to provide context or additional information for the reviewer. |
| `reviewer` | integer | No | Admin user ID who will review the timesheet submission. Only applicable when requesting approval. Use EVERHOUR_LIST_TEAM_MEMBERS to get user IDs of admin users. |
| `timesheet_id` | integer | Yes | Unique identifier of the timesheet to request approval for or approve. This is the timesheet ID returned from the timesheet list endpoint. |
| `sendNotification` | boolean | No | Whether to send a notification to the reviewer when requesting approval. Defaults to true if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Section

**Slug:** `EVERHOUR_SECTION_CREATE`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the section to be created. Supports Unicode characters, emojis, and special characters. |
| `project_id` | string | Yes | The unique identifier of the project to add the section to. Use the 'List Projects' action to find available project IDs. Format: 'ev:' followed by numeric ID (e.g., 'ev:192144450634449'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a section

**Slug:** `EVERHOUR_SECTION_DELETE`

Tool to delete a section. Use when you need to permanently remove a section from Everhour after confirming the section ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_id` | string | Yes | Numeric ID of the section to delete. Obtain section IDs by listing sections for a project using the List Sections action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task

**Slug:** `EVERHOUR_TASK_CREATE`

Creates a new task in an Everhour project. Use this to add tasks for time tracking. Requires a valid project ID (get from EVERHOUR_LIST_PROJECTS) and a task name. Example: Create a task named 'Write unit tests' in project ev:192144450634449.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name/title of the task to create |
| `tags` | array | No | List of tag IDs to apply to the task. Use EVERHOUR_LIST_TAGS to get available tag IDs. |
| `parent` | string | No | Parent task ID to create this as a subtask. Must be an existing task ID from the same project. |
| `section` | string | No | Section ID to place the task in. Use EVERHOUR_LIST_SECTIONS to get section IDs for a project. |
| `assignee` | integer | No | User ID to assign the task to. Use EVERHOUR_LIST_TEAM_MEMBERS to get user IDs. |
| `estimate` | integer | No | Time estimate for the task in seconds (e.g., 3600 for 1 hour, 5400 for 1.5 hours) |
| `projectId` | string | Yes | The Everhour project ID where the task will be created. Use EVERHOUR_LIST_PROJECTS to get available project IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start Timer

**Slug:** `EVERHOUR_TIMER_START`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task` | string | Yes | The Everhour task ID to start the timer on. Format: 'ev:<numeric_id>' (e.g., 'ev:192144450634449') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Client

**Slug:** `EVERHOUR_UPDATE_CLIENT`

Tool to update an existing client in Everhour. Use this to modify client details such as name, business details, or status (active/archived). First use 'List Clients' to obtain the client ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Numeric ID of the client to update. Obtain this from the List Clients action. |
| `name` | string | No | New name for the client |
| `status` | string | No | Client status: 'active' or 'archived' |
| `businessDetails` | string | No | Business details or address information for the client |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update an existing project

**Slug:** `EVERHOUR_UPDATE_PROJECT`

Updates an existing Everhour project's settings. Use this to modify project name, budget, billing configuration, or notes. Requires a valid project_id (format: 'ev:XXXXXXXXX') - obtain from list_projects or project_create actions first. Only the fields you specify will be updated; omitted fields remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name of the project |
| `note` | string | No | Additional notes about the project |
| `budget` | number | No | Total budget for the project (must be non-negative, in hours or amount depending on budgetType) |
| `billable` | boolean | No | Whether the project is billable by default |
| `budgetType` | string ("hours" | "amount") | No | Type of budget: 'hours' for time-based budget tracking, 'amount' for monetary budget tracking |
| `hourlyRate` | number | No | Hourly rate (required if billingMethod is 'time'; must be non-negative) |
| `project_id` | string | Yes | The unique project identifier in format 'ev:XXXXXXXXX' (e.g., 'ev:192154504256423'). Obtain this from list_projects or project_create actions. |
| `budgetReset` | string ("never" | "weekly" | "monthly") | No | Budget reset period: 'never' for a one-time budget, 'weekly' or 'monthly' for recurring budget cycles |
| `billingMethod` | string ("none" | "time" | "fixedFee") | No | Billing method: 'none' for non-billable, 'time' for hourly billing (requires hourlyRate), 'fixedFee' for fixed price billing |
| `budgetIncludeExpenses` | boolean | No | Whether to include expenses in the budget |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Timecard

**Slug:** `EVERHOUR_UPDATE_TIMECARD`

Tool to update a timecard for a user on a specific date. Use when you need to set or modify clock-in, clock-out times, or break duration for a user's timecard.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Date for the timecard in YYYY-MM-DD format (e.g., '2026-02-14') |
| `clockIn` | string | No | Clock in time in user's local timezone using HH:MM format (e.g., '09:00') |
| `user_id` | integer | Yes | Numeric ID of the user whose timecard is being updated |
| `clockOut` | string | No | Clock out time in user's local timezone using HH:MM format (e.g., '18:00') |
| `breakTime` | integer | No | Break duration in seconds (e.g., 3600 for 1 hour break) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Webhook

**Slug:** `EVERHOUR_UPDATE_WEBHOOK`

Tool to update an existing webhook configuration in Everhour. Use this to modify the target URL, subscribed events, or project filter of an existing webhook. First use 'List Webhooks' to obtain the webhook ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `events` | array | Yes | List of events to subscribe to. Valid event types include: 'api:client:created', 'api:client:updated', 'api:project:created', 'api:project:updated', 'api:project:removed', 'api:task:created', 'api:task:updated', 'api:task:removed', 'api:timer:started', 'api:timer:stopped', 'api:time:updated', 'api:section:created', 'api:section:updated', 'api:section:removed', 'api:estimate:updated' |
| `hook_id` | integer | Yes | Webhook ID to update. Obtain this from the List Webhooks action. |
| `project` | string | No | Filter events by project ID. If specified, only events from this project will trigger the webhook. |
| `targetUrl` | string | Yes | Target URL for webhook delivery. Must be a valid URL that responds to Everhour's validation request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
