Harvest Automation
The Harvest Automation skill allows users to automate time tracking and project management tasks within the Harvest platform directly from Claude Code.
Install
npx promptshop add HarvestDetails
What This Skill Does
The Harvest Automation skill allows users to automate time tracking and project management tasks within the Harvest platform directly from Claude Code. It's designed for project managers, developers, and anyone who needs to log time, manage projects, and generate reports in Harvest. Users can create time entries, manage projects, and pull reporting data using natural language commands.
When to Use
- Log billable hours to a specific project and task.
- List all time entries within a specified date range.
- Update the notes or duration of an existing time entry.
- Create a new project with client and billing configurations.
- Retrieve details for a specific project by its ID.
- Generate a report of time spent on a project by user.
Key Features
- Creates and manages time entries with detailed parameters.
- Lists and filters time entries based on various criteria.
- Creates new projects with billing and budget configurations.
- Retrieves project details by ID.
- Integrates directly with Harvest via Rube MCP.
- Uses natural language commands for task execution.
Manual Installation
Automate your Harvest time tracking operations directly from Claude Code. Log time entries, manage projects and clients, create tasks, and pull reporting data -- all without leaving your terminal.
Toolkit docs: composio.dev/toolkits/harvest
Setup
Add the Rube MCP server to your Claude Code config with URL: https://rube.app/mcp When prompted, authenticate your Harvest account through the connection link provided Start automating your time tracking workflows with natural language
Core Workflows
1. Log and Manage Time Entries
Create, list, update, and retrieve time entries for accurate billing and reporting.
Tools: HARVEST_CREATE_TIME_ENTRY, HARVEST_LIST_TIME_ENTRIES, HARVEST_GET_TIME_ENTRY, HARVEST_UPDATE_TIME_ENTRY
Log 3.5 hours of development work on project 12345, task 67890 for today
Key parameters for HARVEST_CREATE_TIME_ENTRY: project_id (required) -- the project to log against task_id (required) -- the task must be assigned to the project spent_date (required) -- date in YYYY-MM-DD format hours -- total hours (for duration-based accounts) started_time / ended_time -- for timestamp-based accounts notes -- description of work performed
Key parameters for HARVEST_LIST_TIME_ENTRIES: from_date / to -- date range filters (YYYY-MM-DD) project_id, client_id, task_id, user_id -- entity filters is_billed / is_running -- status filters page / per_page (max 2000) -- pagination
2. Manage Projects
Create new projects and list existing ones with client and billing configuration.
Tools: HARVEST_CREATE_PROJECT, HARVEST_LIST_PROJECTS, HARVEST_GET_PROJECT
Create a billable project called "Website Redesign" for client 456 with Tasks billing and project budget
Key parameters for HARVEST_CREATE_PROJECT: name, client_id, is_billable, bill_by, budget_by (all required) bill_by options: "Project", "Tasks", "People", "none" budget_by options: "project", "project_cost", "task", "task_fees", "person", "none" Optional: budget, hourly_rate, starts_on, ends_on, is_fixed_fee
3. Manage Clients
Create and list clients that projects are organized under.
Tools: HARVEST_CREATE_CLIENT, HARVEST_LIST_CLIENTS
List all active clients in our Harvest account
HARVEST_CREATE_CLIENT requires name; accepts address, currency, is_active HARVEST_LIST_CLIENTS supports is_active filter and pagination (per_page max 2000)
4. Manage Tasks
Create and list reusable task types for time tracking.
Tools: HARVEST_CREATE_TASK, HARVEST_LIST_TASKS
Create a new billable task called "Code Review" with a default rate of $150/hr
HARVEST_CREATE_TASK requires name; accepts billable_by_default, default_hourly_rate, is_active, is_default HARVEST_LIST_TASKS supports is_active, is_default filters and pagination (per_page max 100) Task names must be unique across all tasks (active and archived)
5. Time Entry Reporting
Pull time entries with date ranges and filters for billing summaries and utilization reports.
Tools: HARVEST_LIST_TIME_ENTRIES, HARVEST_GET_TIME_ENTRY
Show me all unbilled time entries for project 789 from January 2026
Use from_date and to for date windowing Filter with is_billed: false for unbilled entries Combine project_id, user_id, client_id for cross-dimensional reporting Paginate with page and per_page to gather complete datasets
6. Update and Correct Time Entries
Modify existing time entries to fix hours, reassign projects, or update notes.
Tools: HARVEST_UPDATE_TIME_ENTRY
Update time entry 123456 to change the hours to 4.0 and add the note "Completed API integration"
Requires time_entry_id Supports partial updates -- only include fields you want to change Can update hours, notes, project_id, task_id, spent_date, started_time, ended_time
Known Pitfalls
Task assignment matters: When creating time entries, the task_id must correspond to a task that is actually assigned to the specified project_id. Use project task assignments endpoint to verify, not just HARVEST_LIST_TASKS (which returns global tasks). Duration vs. timestamp tracking: Harvest accounts are configured for either duration-based or timestamp-based tracking. hours is ignored on timestamp accounts; started_time/ended_time are ignored on duration accounts. Pagination limits vary: HARVEST_LIST_TIME_ENTRIES and HARVEST_LIST_CLIENTS support up to 2000 per page, but HARVEST_LIST_PROJECTS and HARVEST_LIST_TASKS cap at 100 per page. Date format consistency: All date parameters must use YYYY-MM-DD format. ISO 8601 with timezone is used for updated_since filters. Required fields for projects: HARVEST_CREATE_PROJECT requires five fields: name, client_id, is_billable, bill_by, and budget_by. Missing any will cause a validation error.
Quick Reference
| Tool Slug | Description |
|---|---|
| HARVEST_LIST_TIME_ENTRIES | List time entries with date, project, client, user filters |
| HARVEST_CREATE_TIME_ENTRY | Log a new time entry (requires project_id, task_id, spent_date) |
| HARVEST_GET_TIME_ENTRY | Retrieve a specific time entry by ID |
| HARVEST_UPDATE_TIME_ENTRY | Update an existing time entry (requires time_entry_id) |
| HARVEST_LIST_PROJECTS | List projects with optional client filter |
| HARVEST_CREATE_PROJECT | Create a new project with billing config |
| HARVEST_GET_PROJECT | Retrieve a specific project by ID |
| HARVEST_LIST_CLIENTS | List clients with active/inactive filter |
| HARVEST_CREATE_CLIENT | Create a new client (requires name) |
| HARVEST_LIST_TASKS | List reusable task types |
| HARVEST_CREATE_TASK | Create a new task type (requires name) |
Automate your Harvest time tracking operations directly from Claude Code. Log time entries, manage projects and clients, create tasks, and pull reporting data -- all without leaving your terminal.
Toolkit docs: composio.dev/toolkits/harvest
1. Log and Manage Time Entries
Create, list, update, and retrieve time entries for accurate billing and reporting.
Tools: HARVEST_CREATE_TIME_ENTRY, HARVEST_LIST_TIME_ENTRIES, HARVEST_GET_TIME_ENTRY, HARVEST_UPDATE_TIME_ENTRY
Log 3.5 hours of development work on project 12345, task 67890 for today
Key parameters for HARVEST_CREATE_TIME_ENTRY: project_id (required) -- the project to log against task_id (required) -- the task must be assigned to the project spent_date (required) -- date in YYYY-MM-DD format hours -- total hours (for duration-based accounts) started_time / ended_time -- for timestamp-based accounts note