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.

install
source · Clone the upstream repo
git clone https://github.com/Engineer1999/A-Curated-List-of-Awesome-Claude-Skills
Claude Code · Install into ~/.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"
manifest: app-automations/harvest-automation/SKILL.md
source content

Harvest 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

  1. Add the Rube MCP server to your Claude Code config with URL:
    https://rube.app/mcp
  2. When prompted, authenticate your Harvest account through the connection link provided
  3. 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 SlugDescription
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
)

Part of the Claude Skills Hub