A-Curated-List-of-Awesome-Claude-Skills Harvest Automation
Automate time tracking, project management, and invoicing workflows in Harvest -- log hours, manage projects, clients, and tasks through natural language commands.
git clone https://github.com/Engineer1999/A-Curated-List-of-Awesome-Claude-Skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/Engineer1999/A-Curated-List-of-Awesome-Claude-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/app-automations/harvest-automation" ~/.claude/skills/engineer1999-a-curated-list-of-awesome-claude-skills-harvest-automation && rm -rf "$T"
app-automations/harvest-automation/SKILL.mdHarvest Automation
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: claude-skills.ai/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:
(required) -- the project to log againstproject_id
(required) -- the task must be assigned to the projecttask_id
(required) -- date in YYYY-MM-DD formatspent_date
-- total hours (for duration-based accounts)hours
/started_time
-- for timestamp-based accountsended_time
-- description of work performednotes
Key parameters for
HARVEST_LIST_TIME_ENTRIES:
/from_date
-- date range filters (YYYY-MM-DD)to
,project_id
,client_id
,task_id
-- entity filtersuser_id
/is_billed
-- status filtersis_running
/page
(max 2000) -- paginationper_page
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
(all required)budget_by
options:bill_by
,"Project"
,"Tasks"
,"People""none"
options:budget_by
,"project"
,"project_cost"
,"task"
,"task_fees"
,"person""none"- Optional:
,budget
,hourly_rate
,starts_on
,ends_onis_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
requiresHARVEST_CREATE_CLIENT
; acceptsname
,address
,currencyis_active
supportsHARVEST_LIST_CLIENTS
filter and pagination (is_active
max 2000)per_page
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
requiresHARVEST_CREATE_TASK
; acceptsname
,billable_by_default
,default_hourly_rate
,is_activeis_default
supportsHARVEST_LIST_TASKS
,is_active
filters and pagination (is_default
max 100)per_page- 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
andfrom_date
for date windowingto - Filter with
for unbilled entriesis_billed: false - Combine
,project_id
,user_id
for cross-dimensional reportingclient_id - Paginate with
andpage
to gather complete datasetsper_page
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_timeended_time
Known Pitfalls
- Task assignment matters: When creating time entries, the
must correspond to a task that is actually assigned to the specifiedtask_id
. Use project task assignments endpoint to verify, not justproject_id
(which returns global tasks).HARVEST_LIST_TASKS - Duration vs. timestamp tracking: Harvest accounts are configured for either duration-based or timestamp-based tracking.
is ignored on timestamp accounts;hours
/started_time
are ignored on duration accounts.ended_time - Pagination limits vary:
andHARVEST_LIST_TIME_ENTRIES
support up to 2000 per page, butHARVEST_LIST_CLIENTS
andHARVEST_LIST_PROJECTS
cap at 100 per page.HARVEST_LIST_TASKS - Date format consistency: All date parameters must use
format. ISO 8601 with timezone is used forYYYY-MM-DD
filters.updated_since - Required fields for projects:
requires five fields:HARVEST_CREATE_PROJECT
,name
,client_id
,is_billable
, andbill_by
. Missing any will cause a validation error.budget_by
Quick Reference
| Tool Slug | Description |
|---|---|
| List time entries with date, project, client, user filters |
| Log a new time entry (requires , , ) |
| Retrieve a specific time entry by ID |
| Update an existing time entry (requires ) |
| List projects with optional client filter |
| Create a new project with billing config |
| Retrieve a specific project by ID |
| List clients with active/inactive filter |
| Create a new client (requires ) |
| List reusable task types |
| Create a new task type (requires ) |
Part of the Claude Skills Hub