Integration

Everhour integration

Everhour is a time tracking, budgeting and invoicing tool that also works inside Asana, Trello, ClickUp and other project tools. With this API an agent can manage clients and their budgets, projects (billing, budget, archive, sync from a connected integration), sections, tasks, estimates and custom fields; add, edit and list time records; start and stop timers; clock users in and out (timecards); submit, approve or reject weekly timesheets; manage the schedule (resource planner assignments, time off, time-off types and allocations); record expenses with categories and attachments; create, update, mark and export invoices; read the projects, clients and users reports; list users; and manage webhooks. The two report routes the vendor marks deprecated (estimates and time export) are not exposed. The API is in beta per the vendor; the rate limit is about 20 requests per 10 seconds per key (HTTP 429 with Retry-After). Authentication is the API key shown at the bottom of the Everhour profile page, sent in the X-Api-Key header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Everhour.Built from the 98 Everhour tools below, on the connection you add once.

What you can do with Everhour

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Time, 7 operations

  • add_time_recordAdd time recordPOSTLogs time (seconds) on a task for a date. Returns the time record with its id and history.
  • delete_time_recordDelete time recordDELETEDeletes a time record. Returns the deleted record.
  • list_project_time_recordsList project time recordsGETLists the time records of one project in a date range (paged), with history.
  • list_task_time_recordsList task time recordsGETLists the time records of one task in a date range (paged), with history.
  • list_time_recordsList time recordsGETLists the time records of the whole team in a date range (paged), with task, user, date, seconds and comment. Billing is added with opts_include_billing=1.
  • list_user_time_recordsList user time recordsGETLists one user's time records in a date range (paged).
  • update_time_recordUpdate time recordPUTUpdates a time record. time and date are required on every call: send the current values back with your change.

Invoice, 6 operations

  • create_invoiceCreate invoicePOSTCreates a draft invoice for a client from tracked time and/or expenses of a period (limitDateFrom, limitDateTill). Returns the invoice with line items.
  • delete_invoiceDelete invoiceDELETEDeletes an invoice. Returns no content (HTTP 204); it cannot be undone.
  • get_invoiceGet invoiceGETGets one invoice: client, dates, status, line items, tax, discount and amounts in cents (list, net and total).
  • list_invoicesList invoicesGETLists invoices with client, period, status (draft, sent, paid), amounts in cents and line items.
  • set_invoice_statusSet invoice statusPOSTMarks an invoice as draft, sent or paid. Returns the invoice.
  • update_invoiceUpdate invoicePUTUpdates an invoice: number (publicId), issue and due dates, reference, public notes, tax, discount and line items. Returns the invoice.

Project, 6 operations

  • create_projectCreate projectPOSTCreates a native Everhour project (name and type required). Returns it with its id (ev:...).
  • delete_projectDelete projectDELETEDeletes a project. Returns no content (HTTP 204); it cannot be undone.
  • get_projectGet projectGETGets one project: name, workspace, client, type, users, billing, rate and budget with progress.
  • get_projects_reportGet projects reportGETProjects report: per project, time in seconds (billable, non-billable) and amounts in cents (billable, costs, profit, uninvoiced, expenses). Filter by dates, project, client, user.
  • list_projectsList projectsGETLists projects with id, name, workspace, client, type, users, billing, rate and budget. Filter by name (query), integration (platform) and count (limit).
  • update_projectUpdate projectPUTUpdates a project's name, type and assigned users. name and type are required on every call: read them with get_project first.

Client, 5 operations

  • create_clientCreate clientPOSTCreates a client. Returns it with its id. Link projects by passing their IDs in projects.
  • get_clientGet clientGETGets one client: name, projects, businessDetails and budget (type, budget, period, progress).
  • get_clients_reportGet clients reportGETClients report: per client, time in seconds and amounts in cents (billable, costs, profit, uninvoiced, expenses). Filter by dates, project, client, user.
  • list_clientsList clientsGETLists clients, each with id, name, projects (project IDs), businessDetails and budget. Filter by name with query.
  • update_clientUpdate clientPUTUpdates a client's name, linked projects and business details. name is required on every call: read it with get_client first.

Section, 5 operations

  • create_sectionCreate sectionPOSTCreates a section in a project. Returns it with its id.
  • delete_sectionDelete sectionDELETEDeletes a section. Returns no content (HTTP 204); it cannot be undone.
  • get_sectionGet sectionGETGets one section: name, project, position and status.
  • list_project_sectionsList project sectionsGETLists the sections of a project with id, name, position and status.
  • update_sectionUpdate sectionPUTUpdates a section. name is required on every call: read it with get_section first.

Task, 5 operations

  • create_taskCreate taskPOSTCreates a task in a project section (name and section required). Returns it with its id (ev:...).
  • delete_taskDelete taskDELETEDeletes a task. Returns no content (HTTP 204); it cannot be undone.
  • get_taskGet taskGETGets one task: name, projects, section, labels, due date, status, tracked time and estimate. Billing is added with opts_include_billing=1.
  • list_project_tasksList project tasksGETLists the tasks of a project (paged, 250 max per page) with time, estimate and status. Set exclude-closed to skip closed tasks.
  • update_taskUpdate taskPUTUpdates a task (name, section, labels, position, description, due date, assignees, status). name and section are required on every call: read them with get_task first.

Timecard, 5 operations

  • delete_timecardDelete timecardDELETEDeletes a user's timecard for a date. Returns no content (HTTP 204); it cannot be undone.
  • get_timecardGet timecardGETGets one user's timecard for a date: clock-in, clock-out, break and work time.
  • list_timecardsList timecardsGETLists the timecards of all users in a date range (from defaults to 2 weeks ago).
  • list_user_timecardsList user timecardsGETLists one user's timecards in a date range (from defaults to 2 weeks ago).
  • update_timecardUpdate timecardPUTEdits a user's timecard for a date: clock-in, clock-out and break duration.

Allocation, 4 operations

  • create_time_off_allocationCreate time off allocationPOSTCreates a time-off allocation (days of a time-off type granted to users for a period). Returns it with its id.
  • delete_time_off_allocationDelete time off allocationDELETEDeletes a time-off allocation. Returns no content (HTTP 204); it cannot be undone.
  • list_time_off_allocationsList time off allocationsGETLists time-off allocations per user: type, period, days allocated, carried and used.
  • update_time_off_allocationUpdate time off allocationPUTUpdates a time-off allocation: period, users, time-off type, days, carried days, accrual and notes. Returns the allocation.

Assignment, 4 operations

  • create_schedule_assignmentCreate schedule assignmentPOSTSchedules a user (or several) on a project for a date range with scheduled time in seconds. Returns the assignment with its id.
  • delete_schedule_assignmentDelete schedule assignmentDELETEDeletes a schedule assignment or a time off. Returns no content (HTTP 204); it cannot be undone.
  • list_schedule_assignmentsList schedule assignmentsGETLists schedule entries (project assignments and time off). Filter by type, project, task, client and date range.
  • update_schedule_assignmentUpdate schedule assignmentPUTUpdates a schedule assignment (dates, project, time, users). Returns it.

Category, 4 operations

  • create_expense_categoryCreate expense categoryPOSTCreates an expense category. Returns it with its id.
  • delete_expense_categoryDelete expense categoryDELETEDeletes an expense category. Its expenses are moved to targetCategory, or deleted when removeExpenses is true. Returns no content (HTTP 204); it cannot be undone.
  • list_expense_categoriesList expense categoriesGETLists expense categories with name, color and unit settings.
  • update_expense_categoryUpdate expense categoryPUTUpdates an expense category: name, color and unit settings (unitBased, unitName, unitPrice in cents). Returns the category.

Expense, 4 operations

  • create_expenseCreate expensePOSTRecords an expense. category and date are required. Returns the expense with its id.
  • delete_expenseDelete expenseDELETEDeletes an expense. Returns no content (HTTP 204); it cannot be undone.
  • list_expensesList expensesGETLists expenses: amount in cents, category, date, project, user, billable, quantity and attachments.
  • update_expenseUpdate expensePUTUpdates an expense. category and date are required on every call: send the current values back with your change.

Field, 4 operations

  • create_project_custom_fieldCreate project custom fieldPOSTCreates a custom field on a project. Returns it with its id.
  • delete_custom_fieldDelete custom fieldDELETEDeletes a custom field. Returns no content (HTTP 204); it cannot be undone.
  • list_project_custom_fieldsList project custom fieldsGETLists the custom fields configured on a project with type, format, options and position.
  • update_custom_fieldUpdate custom fieldPUTUpdates a custom field: name, type, format, icon and select options. Returns the field.

Hook, 4 operations

  • create_webhookCreate webhookPOSTCreates a webhook. The targetUrl must echo the X-Hook-Secret header of the verification POST. Returns the webhook; the vendor documents no signature on later deliveries.
  • delete_webhookDelete webhookDELETEDeletes a webhook. Returns no content (HTTP 204); it cannot be undone.
  • get_webhookGet webhookGETGets a webhook: targetUrl, events, project, isActive, createdAt and lastUsedAt.
  • update_webhookUpdate webhookPUTUpdates a webhook (re-verifies targetUrl the same way). targetUrl and events are required on every call: read them with get_webhook first.

Time off type, 4 operations

  • create_time_off_typeCreate time off typePOSTCreates a time-off type. Returns it with its id.
  • delete_time_off_typeDelete time off typeDELETEDeletes a time-off type. Returns no content (HTTP 204); it cannot be undone.
  • list_time_off_typesList time off typesGETLists time-off types (such as Sick or Vacation) with name, color, paid and description.
  • update_time_off_typeUpdate time off typePUTUpdates a time-off type: name, color, paid flag and description. Returns the type.

Attachment, 3 operations

  • add_expense_attachmentAdd expense attachmentPOSTUploads a file (base64 jpg, png or pdf) and attaches it to an expense. Returns the attachment with id, name and token.
  • create_attachmentCreate attachmentPOSTUploads a file (base64 jpg, png or pdf) and returns it with id and token; pass the id in an expense's attachments or use add_expense_attachment.
  • delete_attachmentDelete attachmentDELETEDeletes an attachment. Returns no content (HTTP 204); it cannot be undone.

Approval, 2 operations

  • request_timesheet_approvalRequest timesheet approvalPOSTSubmits a week for approval (or approves your own week). Returns the approval with its history.
  • review_timesheet_approvalReview timesheet approvalPUTApproves or rejects a submitted week (admin). Pass days to approve only some days. Returns the approval.

Budget, 2 operations

  • delete_client_budgetDelete client budgetDELETERemoves the budget of a client. Returns no content (HTTP 204); it cannot be undone.
  • update_client_budgetUpdate client budgetPUTSets the budget of a client: type (money, time or costs), budget value, period and alert threshold. Returns the client. type, budget and period are required.

Current, 2 operations

  • get_running_timerGet running timerGETGets the running timer of the API key's user: status (active or stopped), duration, task and start time.
  • stop_timerStop timerDELETEStops the running timer of the API key's user. Returns the timer.

Estimate, 2 operations

  • delete_task_estimateDelete task estimateDELETERemoves a task's estimate. Returns no content (HTTP 204); it cannot be undone.
  • update_task_estimateUpdate task estimatePUTSets a task's time estimate in seconds, overall or per user. Returns the task.

Search, 2 operations

  • search_project_tasksSearch project tasksGETSearches tasks by name within one project. Returns matching tasks.
  • search_tasksSearch tasksGETSearches tasks by name across all projects. Returns matching tasks.

Timer, 2 operations

  • list_team_timersList team timersGETLists the timers of the team members, each with status, duration, task and user.
  • start_timerStart timerPOSTStarts a timer on a task for the API key's user. Returns the running timer.

Timesheet, 2 operations

  • list_team_timesheetsList team timesheetsGETLists the timesheets of the whole team for one week, with tasks, daily time, approval and timecards.
  • list_user_timesheetsList user timesheetsGETLists a user's weekly timesheets (latest weeks first, up to limit weeks), with tasks, daily time, approval and time off.

User, 2 operations

  • get_users_reportGet users reportGETUsers report: per user, time in seconds (including time off) and amounts in cents (billable, costs, profit, expenses). Filter by dates, project, client, user.
  • list_usersList usersGETLists the users of the team with id, name, headline, role and status.

Archive, 1 operation

  • archive_projectArchive projectPATCHArchives a project (archived true) or unarchives it (archived false). Returns the project.

Billing, 1 operation

  • update_project_billingUpdate project billingPUTSets a project's billing (non_billable, hourly, fixed_fee), rates (project_rate or per-user) and budget. Returns the project. Amounts are in cents.

Clock in, 1 operation

  • clock_inClock inPOSTClocks a user in for the day. Returns the timecard.

Clock out, 1 operation

  • clock_outClock outPOSTClocks a user out for the day. Returns the timecard with work time.

Discard approval, 1 operation

  • discard_timesheet_approvalDiscard timesheet approvalPUTWithdraws your own approval request for a week. Returns the approval.

Download, 1 operation

  • download_attachmentDownload attachmentGETDownloads an attachment file by its token and stores it as a file.

Export, 1 operation

  • export_invoiceExport invoicePOSTExports an invoice to the accounting integration connected in Everhour (Xero, QuickBooks or FreshBooks). Returns the invoice.

Fields order, 1 operation

  • reorder_project_custom_fieldsReorder project custom fieldsPUTSets the order of a project's custom fields. Returns the ordered field IDs.

Me, 1 operation

  • get_current_userGet current userGETGets the user the API key belongs to: id, name, headline, role (admin, supervisor, member) and status.

Reset time, 1 operation

  • refresh_invoice_line_itemsRefresh invoice line itemsPOSTRebuilds an invoice's line items from tracked time and expenses for the given period and projects. Returns the invoice.

Sync, 1 operation

  • sync_integration_projectSync integration projectPOSTSyncs a project from a connected integration (Asana, Trello, ClickUp and so on) into Everhour at once. Safe to repeat: an existing project is returned unchanged.

Time off, 1 operation

  • create_time_offCreate time offPOSTCreates a time off for a user (a schedule entry of type time-off) with its time-off type and period. Returns it with its id; delete it with delete_schedule_assignment.

Use Everhour from Claude Code, Cursor or Codex

Connect Everhour in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Everhour operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Everhour

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Everhour once

    Add your Everhour connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Everhour integration FAQ

What can you do with the Everhour integration?

LiveContext exposes 98 operations on Everhour, covering time, invoice, project and client.

Popular integrations

Browse the whole catalog