# Harvest

> Log and time work, keep projects, clients and tasks in step, raise and send invoices, record expenses and report hours in Harvest.

App · Project Management · 20 actions. Web page: https://docs.lodol.com/docs/integrations/harvest

## Actions

### Add task to project

Put a task on a project, so time can be logged to it there.

**Inputs**

- Project (`project_id`, text, required): The project.
- Task (`task_id`, text, required): The task to add.
- Billable (`billable`, true/false): Whether time on it is billable. Default: No.
- Hourly rate (`hourly_rate`, number): Its rate, when the project is billed by task. At least 0.
- Budget (hours) (`budget`, number): Its budget, when the project is budgeted per task. At least 0.

**Outputs**

- `task_assignment` (object)

**Example output**

```json
{
  "task_assignment": {
    "billable": true,
    "budget": null,
    "created_at": "2017-06-26T21:52:18Z",
    "hourly_rate": 100.0,
    "id": 155505016,
    "is_active": true,
    "project_id": 14308069,
    "project_name": "Online Store - Phase 1",
    "task_id": 8083800,
    "task_name": "Business Development",
    "updated_at": "2017-06-26T21:52:18Z"
  }
}
```

### Create client

Add a client to hold projects and receive invoices.

**Inputs**

- Name (`name`, text, required): The client's name.
- Address (`address`, text): The client's address.
- Currency (`currency`, text): The three-letter code of the currency to invoice in, e.g. EUR. Leave empty for your company's currency.

**Outputs**

- `client` (object)

**Example output**

```json
{
  "client": {
    "address": "123 Main St.\r\nAnytown, LA 71223",
    "created_at": "2017-06-26T21:02:12Z",
    "currency": "EUR",
    "id": 5735776,
    "is_active": true,
    "name": "123 Industries",
    "updated_at": "2017-06-26T21:34:11Z"
  }
}
```

### Create expense

Record an expense on a project: an amount, or units for a category charged per unit (such as mileage).

**Inputs**

- Project (`project_id`, text, required): The project, from those you're assigned to.
- Category (`expense_category`, text, required): The expense category, picked or typed by name.
- Date (`spent_date`, date): The day of the expense. Leave empty for today (UTC).
- Amount (`total_cost`, number): What it cost. For a category not charged per unit. At least 0.
- Units (`units`, number): How many units, for a category charged per unit. At least 1.
- Notes (`notes`, text): What it was for.
- Billable (`billable`, true/false): Whether to bill it to the client. Default: Yes.

**Outputs**

- `expense` (object)

**Example output**

```json
{
  "expense": {
    "approval_status": "unsubmitted",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:09:54Z",
    "expense_category_id": 4195926,
    "expense_category_name": "Meals",
    "id": 15296442,
    "is_billed": false,
    "is_locked": false,
    "notes": "Lunch with client",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "spent_date": "2017-03-03",
    "total_cost": 33.35,
    "units": 1,
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```

### Create invoice

Create a draft invoice for a client, with one line from the fields below and any more from Line items. Send it with Send invoice.

**Inputs**

- Client (`client_id`, text, required): The client to bill.
- Item category (`item_category`, text): The line's category. Default: Service.
- Description (`description`, text): What the line is for.
- Quantity (`quantity`, number): How many, e.g. hours. Default: 1. At least 0.
- Unit price (`unit_price`, number): The price of one. Leave empty to add lines only from Line items. At least 0.
- Project (`project_id`, text): The project the lines are for.
- Line items (`line_items`, list): More lines, as a list of objects with unit_price and optionally description, quantity, item_category, project_id and taxed.
- Invoice number (`number`, text): Leave empty for Harvest's next number. Must be unique.
- Purchase order (`purchase_order`, text): The client's PO number.
- Subject (`subject`, text): The invoice's subject line.
- Notes (`notes`, text): Notes printed on the invoice.
- Currency (`currency`, text): A three-letter code, e.g. EUR. Leave empty for the client's.
- Issue date (`issue_date`, date): Leave empty for today.
- Due date (`due_date`, date): A due date of your own. Use this or Payment term.
- Payment term (`payment_term`, text): When payment is due. Use this or Due date. One of: `upon receipt`, `net 15`, `net 30`, `net 45`, `net 60`, `custom` (Custom (set a due date)).
- Tax (%) (`tax`, number): Tax rate in percent, e.g. 10, on lines marked taxed. At least 0.
- Discount (%) (`discount`, number): Discount in percent, e.g. 5. From 0 to 100.

**Outputs**

- `invoice` (object)

**Example output**

```json
{
  "invoice": {
    "amount": 288.9,
    "client_id": 5735776,
    "client_name": "123 Industries",
    "created_at": "2017-06-27T16:27:16Z",
    "currency": "EUR",
    "discount": null,
    "discount_amount": 0.0,
    "due_amount": 288.9,
    "due_date": "2017-04-01",
    "id": 13150403,
    "issue_date": "2017-04-01",
    "line_items": [
      {
        "amount": 200.0,
        "description": "03/01/2017 - Project Management: [9:00am - 11:00am] Planning meetings",
        "id": 53341602,
        "item_category": "Service",
        "project_id": 14308069,
        "project_name": "Online Store - Phase 1",
        "quantity": 2.0,
        "taxed": true,
        "unit_price": 100.0
      }
    ],
    "notes": "Some notes about the invoice.",
    "number": "1001",
    "paid_at": null,
    "payment_term": "upon receipt",
    "purchase_order": "",
    "sent_at": "2017-08-23T22:25:59Z",
    "state": "open",
    "subject": "Online Store - Phase 1",
    "tax": 5.0,
    "tax_amount": 13.5,
    "updated_at": "2017-08-23T22:25:59Z"
  }
}
```

### Create project

Add a project for a client, with you on its team so you can log time to it. The Free plan allows two active projects.

**Inputs**

- Client (`client_id`, text, required): The client the project is for.
- Name (`name`, text, required): The project's name.
- Code (`code`, text): A short code for the project, e.g. OS1.
- Billable (`is_billable`, true/false): Whether time on the project is billable. Default for a new project: Yes.
- Bill by (`bill_by`, text): Which hourly rate applies. Default for a new project: Not billable. One of: `Project` (Project hourly rate), `Tasks` (Task hourly rate), `People` (Person hourly rate), `none` (Not billable).
- Hourly rate (`hourly_rate`, number): The project's rate, when billed by project hourly rate. At least 0.
- Budget by (`budget_by`, text): How the budget is counted. Default for a new project: No budget. One of: `project` (Total project hours), `project_cost` (Total project fees), `task` (Hours per task), `task_fees` (Fees per task), `person` (Hours per person), `none` (No budget).
- Budget (`budget`, number): The budget: hours, or money when budgeted by total project fees. At least 0.
- Cost budget (`cost_budget`, number): The budget in money, when budgeted by fees per task. At least 0.
- Notes (`notes`, text): Notes about the project.
- Starts on (`starts_on`, date): When the project starts.
- Ends on (`ends_on`, date): When the project ends.

**Outputs**

- `assigned_to_you` (true/false): Whether you are on the project's team, so you can log time to it.
- `project` (object)

**Example output**

```json
{
  "assigned_to_you": true,
  "project": {
    "bill_by": "Project",
    "budget": 200.0,
    "budget_by": "project",
    "client_id": 5735776,
    "client_name": "123 Industries",
    "code": "OS1",
    "cost_budget": null,
    "created_at": "2017-06-26T21:52:18Z",
    "currency": "EUR",
    "ends_on": null,
    "fee": null,
    "hourly_rate": 100.0,
    "id": 14308069,
    "is_active": true,
    "is_billable": true,
    "is_fixed_fee": false,
    "name": "Online Store - Phase 1",
    "notes": "",
    "starts_on": "2017-06-01",
    "updated_at": "2017-06-26T21:54:06Z"
  }
}
```

### Create task

Add a task, the kind of work time is logged as. Put it on a project with Add task to project.

**Inputs**

- Name (`name`, text, required): The task's name.
- Default hourly rate (`default_hourly_rate`, number): The rate it gets on a project. Default: 0. At least 0.
- Billable by default (`billable_by_default`, true/false): Whether it is billable when put on a project. Default: Yes.
- Add to new projects (`is_default`, true/false): Yes adds it to every project created from now on. Default: No.

**Outputs**

- `task` (object)

**Example output**

```json
{
  "task": {
    "billable_by_default": false,
    "created_at": "2017-06-26T22:08:25Z",
    "default_hourly_rate": 0.0,
    "id": 8083800,
    "is_active": true,
    "is_default": false,
    "name": "Business Development",
    "updated_at": "2017-06-26T22:08:25Z"
  }
}
```

### Create time entry

Log time already spent on a project's task, as hours or as a start and end time. Works whichever way your account tracks time.

**Inputs**

- Project (`project_id`, text, required): The project, from those you're assigned to.
- Task (`task_id`, text, required): The task, from those on the project picked above.
- Date (`spent_date`, date): The day the time was spent on. Leave empty for today (UTC).
- Hours (`hours`, number): How long, in hours (1.5 is 90 minutes). Or give Start time and End time. From 0 to 24.
- Start time (`started_time`, time): When the work started. Needed with Hours on accounts that track start and end times.
- End time (`ended_time`, time): When the work ended, on the same day.
- Notes (`notes`, text): What the time was for.

**Outputs**

- `time_entry` (object)

**Example output**

```json
{
  "time_entry": {
    "approval_status": "approved",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:50:15Z",
    "ended_time": "5:00pm",
    "hours": 2.11,
    "id": 636709355,
    "is_billed": false,
    "is_locked": true,
    "is_running": false,
    "notes": "Adding CSS styling",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "rounded_hours": 2.25,
    "spent_date": "2017-03-02",
    "started_time": "3:00pm",
    "task_id": 8083365,
    "task_name": "Graphic Design",
    "timer_started_at": null,
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```

### Delete time entry

Permanently delete a time entry. Approved or invoiced time can only be deleted by an Administrator.

**Inputs**

- Time entry (`time_entry_id`, text, required): The time entry's ID, from an earlier step such as Create time entry, Start timer or List time entries.

**Outputs**

- `deleted` (true/false): True once the time entry is gone.
- `time_entry_id` (number): The ID of the time entry deleted.

**Example output**

```json
{
  "deleted": true,
  "time_entry_id": 636709355
}
```

### Get time entry

One time entry, with its project, task, hours and status.

**Inputs**

- Time entry (`time_entry_id`, text, required): The time entry's ID, from an earlier step such as Create time entry, Start timer or List time entries.

**Outputs**

- `time_entry` (object)

**Example output**

```json
{
  "time_entry": {
    "approval_status": "approved",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:50:15Z",
    "ended_time": "5:00pm",
    "hours": 2.11,
    "id": 636709355,
    "is_billed": false,
    "is_locked": true,
    "is_running": false,
    "notes": "Adding CSS styling",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "rounded_hours": 2.25,
    "spent_date": "2017-03-02",
    "started_time": "3:00pm",
    "task_id": 8083365,
    "task_name": "Graphic Design",
    "timer_started_at": null,
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```

### Get time report

Hours tracked between two dates (up to a year), by client, project, task or person, with billable hours and amounts.

**Inputs**

- From (`from_date`, date, required): The first day to include.
- To (`to_date`, date, required): The last day to include.
- Group by (`group_by`, text): How to break the hours down. Default: Project. One of: `clients` (Client), `projects` (Project), `tasks` (Task), `team` (Person).
- Include fixed-fee projects (`include_fixed_fee`, true/false): Also work out billable amounts for fixed-fee projects.

**Outputs**

- `billable_hours` (number): All billable hours, added up.
- `count` (number): How many rows.
- `from_date` (text): The first day covered (YYYY-MM-DD).
- `group_by` (text): clients, projects, tasks or team.
- `results` (list): One row per client, project, task or person.
- `to_date` (text): The last day covered (YYYY-MM-DD).
- `total_hours` (number): All hours tracked, added up.

**Example output**

```json
{
  "billable_hours": 2.5,
  "count": 1,
  "from_date": "2017-01-01",
  "group_by": "projects",
  "results": [
    {
      "billable_amount": 250.0,
      "billable_hours": 2.5,
      "client_id": 5735774,
      "client_name": "ABC Corp",
      "currency": "USD",
      "id": 14307913,
      "name": "Marketing Website",
      "total_hours": 2.5
    }
  ],
  "to_date": "2017-12-31",
  "total_hours": 2.5
}
```

### List clients

Active clients, or archived ones too.

**Inputs**

- Include archived (`include_archived`, true/false): Also list archived ones.
- Limit (`limit`, number): The most records to return, up to 2000. Default: 100. From 1 to 2000.

**Outputs**

- `clients` (list): The clients.
- `count` (number): How many were returned.

**Example output**

```json
{
  "clients": [
    {
      "address": "123 Main St.\r\nAnytown, LA 71223",
      "created_at": "2017-06-26T21:02:12Z",
      "currency": "EUR",
      "id": 5735776,
      "is_active": true,
      "name": "123 Industries",
      "updated_at": "2017-06-26T21:34:11Z"
    }
  ],
  "count": 1
}
```

### List invoices

Invoices, optionally one client's or project's, by state or issued between two dates, with totals and what is still owed.

**Inputs**

- Client (`client_id`, text): Only this client's.
- Project (`project_id`, text): Only this project's.
- State (`state`, text): Only invoices in this state. One of: `draft`, `open`, `paid`, `closed`.
- Issued from (`from_date`, date): The first issue date to include.
- Issued to (`to_date`, date): The last issue date to include.
- Limit (`limit`, number): The most records to return, up to 2000. Default: 100. From 1 to 2000.

**Outputs**

- `count` (number): How many were returned.
- `invoices` (list): The invoices, newest first.
- `total_amount` (number): Their totals added up.
- `total_due` (number): What is still owed on them, added up.

**Example output**

```json
{
  "count": 1,
  "invoices": [
    {
      "amount": 288.9,
      "client_id": 5735776,
      "client_name": "123 Industries",
      "created_at": "2017-06-27T16:27:16Z",
      "currency": "EUR",
      "discount": null,
      "discount_amount": 0.0,
      "due_amount": 288.9,
      "due_date": "2017-04-01",
      "id": 13150403,
      "issue_date": "2017-04-01",
      "line_items": [
        {
          "amount": 200.0,
          "description": "03/01/2017 - Project Management: [9:00am - 11:00am] Planning meetings",
          "id": 53341602,
          "item_category": "Service",
          "project_id": 14308069,
          "project_name": "Online Store - Phase 1",
          "quantity": 2.0,
          "taxed": true,
          "unit_price": 100.0
        }
      ],
      "notes": "Some notes about the invoice.",
      "number": "1001",
      "paid_at": null,
      "payment_term": "upon receipt",
      "purchase_order": "",
      "sent_at": "2017-08-23T22:25:59Z",
      "state": "open",
      "subject": "Online Store - Phase 1",
      "tax": 5.0,
      "tax_amount": 13.5,
      "updated_at": "2017-08-23T22:25:59Z"
    }
  ],
  "total_amount": 288.9,
  "total_due": 288.9
}
```

### List projects

Active projects, optionally one client's or archived ones too.

**Inputs**

- Client (`client_id`, text): Only this client's.
- Include archived (`include_archived`, true/false): Also list archived ones.
- Limit (`limit`, number): The most records to return, up to 2000. Default: 100. From 1 to 2000.

**Outputs**

- `count` (number): How many were returned.
- `projects` (list): The projects.

**Example output**

```json
{
  "count": 1,
  "projects": [
    {
      "bill_by": "Project",
      "budget": 200.0,
      "budget_by": "project",
      "client_id": 5735776,
      "client_name": "123 Industries",
      "code": "OS1",
      "cost_budget": null,
      "created_at": "2017-06-26T21:52:18Z",
      "currency": "EUR",
      "ends_on": null,
      "fee": null,
      "hourly_rate": 100.0,
      "id": 14308069,
      "is_active": true,
      "is_billable": true,
      "is_fixed_fee": false,
      "name": "Online Store - Phase 1",
      "notes": "",
      "starts_on": "2017-06-01",
      "updated_at": "2017-06-26T21:54:06Z"
    }
  ]
}
```

### List tasks

Active tasks, or archived ones too.

**Inputs**

- Include archived (`include_archived`, true/false): Also list archived ones.
- Limit (`limit`, number): The most records to return, up to 2000. Default: 100. From 1 to 2000.

**Outputs**

- `count` (number): How many were returned.
- `tasks` (list): The tasks.

**Example output**

```json
{
  "count": 1,
  "tasks": [
    {
      "billable_by_default": false,
      "created_at": "2017-06-26T22:08:25Z",
      "default_hourly_rate": 0.0,
      "id": 8083800,
      "is_active": true,
      "is_default": false,
      "name": "Business Development",
      "updated_at": "2017-06-26T22:08:25Z"
    }
  ]
}
```

### List time entries

Time entries by date, optionally for one project, client or task, between two dates, or by status, with the hours added up.

**Inputs**

- Project (`project_id`, text): Only this project's.
- Client (`client_id`, text): Only this client's.
- Task (`task_id`, text): Only this task's.
- From (`from_date`, date): The first day to include.
- To (`to_date`, date): The last day to include.
- Running (`is_running`, true/false): Yes for only running timers, No for only stopped ones.
- Billed (`is_billed`, true/false): Yes for only invoiced time, No for only time not yet invoiced.
- Approval status (`approval_status`, text): Only time with this approval status. One of: `unsubmitted`, `submitted`, `approved`.
- Limit (`limit`, number): The most records to return, up to 2000. Default: 100. From 1 to 2000.

**Outputs**

- `count` (number): How many were returned.
- `time_entries` (list): The time entries, by date.
- `total_hours` (number): The hours of all of them added up.

**Example output**

```json
{
  "count": 1,
  "time_entries": [
    {
      "approval_status": "approved",
      "billable": true,
      "client_id": 5735774,
      "client_name": "ABC Corp",
      "created_at": "2017-06-27T15:50:15Z",
      "ended_time": "5:00pm",
      "hours": 2.11,
      "id": 636709355,
      "is_billed": false,
      "is_locked": true,
      "is_running": false,
      "notes": "Adding CSS styling",
      "project_id": 14307913,
      "project_name": "Marketing Website",
      "rounded_hours": 2.25,
      "spent_date": "2017-03-02",
      "started_time": "3:00pm",
      "task_id": 8083365,
      "task_name": "Graphic Design",
      "timer_started_at": null,
      "updated_at": "2017-06-27T16:47:14Z",
      "user_id": 1782959,
      "user_name": "Kim Allen"
    }
  ],
  "total_hours": 2.11
}
```

### Send invoice

Email an invoice to its recipients, or only to yourself. A draft is marked as sent.

**Inputs**

- Invoice (`invoice_id`, text, required): The invoice's ID, e.g. from Create invoice or List invoices.
- Recipients (`recipients`, list): Email addresses to send it to, each optionally as Name <email>. Leave empty to send only yourself a copy.
- Subject (`subject`, text): The email's subject. Leave empty for Harvest's default.
- Message (`body`, text): The email's text. Leave empty for Harvest's default.
- Attach PDF (`attach_pdf`, true/false): Attach the invoice as a PDF. Default: No.
- Send me a copy (`send_me_a_copy`, true/false): Also email it to you. Default: No.

**Outputs**

- `invoice_id` (number): The ID of the invoice sent.
- `message` (object)

**Example output**

```json
{
  "invoice_id": 13150403,
  "message": {
    "attach_pdf": true,
    "created_at": "2017-08-25T21:23:40Z",
    "id": 27835324,
    "recipients": [
      {
        "email": "richardroe@example.com",
        "name": "Richard Roe"
      }
    ],
    "send_me_a_copy": false,
    "sent_by": "Bob Powell",
    "sent_by_email": "bobpowell@example.com",
    "subject": "Invoice #1001 from API Examples"
  }
}
```

### Start timer

Start tracking time on a project's task now.

**Inputs**

- Project (`project_id`, text, required): The project, from those you're assigned to.
- Task (`task_id`, text, required): The task, from those on the project picked above.
- Notes (`notes`, text): What the time was for.
- Date (`spent_date`, date): The day the time was spent on. Leave empty for today (UTC).

**Outputs**

- `time_entry` (object)

**Example output**

```json
{
  "time_entry": {
    "approval_status": "unsubmitted",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:50:15Z",
    "ended_time": null,
    "hours": 0.0,
    "id": 636709355,
    "is_billed": false,
    "is_locked": false,
    "is_running": true,
    "notes": "Adding CSS styling",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "rounded_hours": 0.0,
    "spent_date": "2017-03-02",
    "started_time": "3:00pm",
    "task_id": 8083365,
    "task_name": "Graphic Design",
    "timer_started_at": "2017-06-27T15:50:15Z",
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```

### Stop timer

Stop a running timer: the one given, or your running one. If none is running, nothing changes.

**Inputs**

- Time entry (`time_entry_id`, text): The timer to stop, e.g. from Start timer. Leave empty to stop your running timer.

**Outputs**

- `stopped` (true/false): True if a timer was stopped; false if none was running.
- `time_entry` (object)

**Example output**

```json
{
  "stopped": true,
  "time_entry": {
    "approval_status": "approved",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:50:15Z",
    "ended_time": "5:00pm",
    "hours": 2.11,
    "id": 636709355,
    "is_billed": false,
    "is_locked": true,
    "is_running": false,
    "notes": "Adding CSS styling",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "rounded_hours": 2.25,
    "spent_date": "2017-03-02",
    "started_time": "3:00pm",
    "task_id": 8083365,
    "task_name": "Graphic Design",
    "timer_started_at": null,
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```

### Update project

Change a project's details, or archive or restore it. Only what you fill in changes.

**Inputs**

- Project (`project_id`, text, required): The project to change.
- New name (`name`, text): A new name for the project.
- Client (`client_id`, text): Move the project to this client.
- Active (`is_active`, true/false): No archives the project, so no new time goes to it. Yes restores it.
- Code (`code`, text): A short code for the project, e.g. OS1.
- Billable (`is_billable`, true/false): Whether time on the project is billable. Default for a new project: Yes.
- Bill by (`bill_by`, text): Which hourly rate applies. Default for a new project: Not billable. One of: `Project` (Project hourly rate), `Tasks` (Task hourly rate), `People` (Person hourly rate), `none` (Not billable).
- Hourly rate (`hourly_rate`, number): The project's rate, when billed by project hourly rate. At least 0.
- Budget by (`budget_by`, text): How the budget is counted. Default for a new project: No budget. One of: `project` (Total project hours), `project_cost` (Total project fees), `task` (Hours per task), `task_fees` (Fees per task), `person` (Hours per person), `none` (No budget).
- Budget (`budget`, number): The budget: hours, or money when budgeted by total project fees. At least 0.
- Cost budget (`cost_budget`, number): The budget in money, when budgeted by fees per task. At least 0.
- Notes (`notes`, text): Notes about the project.
- Starts on (`starts_on`, date): When the project starts.
- Ends on (`ends_on`, date): When the project ends.

**Outputs**

- `project` (object)

**Example output**

```json
{
  "project": {
    "bill_by": "Project",
    "budget": 200.0,
    "budget_by": "project",
    "client_id": 5735776,
    "client_name": "123 Industries",
    "code": "OS1",
    "cost_budget": null,
    "created_at": "2017-06-26T21:52:18Z",
    "currency": "EUR",
    "ends_on": null,
    "fee": null,
    "hourly_rate": 100.0,
    "id": 14308069,
    "is_active": true,
    "is_billable": true,
    "is_fixed_fee": false,
    "name": "Online Store - Phase 1",
    "notes": "",
    "starts_on": "2017-06-01",
    "updated_at": "2017-06-26T21:54:06Z"
  }
}
```

### Update time entry

Change a time entry's project, task, date, hours, times or notes. Only what you fill in changes.

**Inputs**

- Time entry (`time_entry_id`, text, required): The time entry's ID, from an earlier step such as Create time entry, Start timer or List time entries.
- Project (`project_id`, text): Move the time to this project. Pick a Task on it too.
- Task (`task_id`, text): Move the time to this task.
- Date (`spent_date`, date): Move the time to this day.
- Hours (`hours`, number): The new length, in hours. From 0 to 24.
- Start time (`started_time`, time): A new start time.
- End time (`ended_time`, time): A new end time.
- Notes (`notes`, text): New notes, replacing the old.

**Outputs**

- `time_entry` (object)

**Example output**

```json
{
  "time_entry": {
    "approval_status": "approved",
    "billable": true,
    "client_id": 5735774,
    "client_name": "ABC Corp",
    "created_at": "2017-06-27T15:50:15Z",
    "ended_time": "5:00pm",
    "hours": 2.11,
    "id": 636709355,
    "is_billed": false,
    "is_locked": true,
    "is_running": false,
    "notes": "Adding CSS styling",
    "project_id": 14307913,
    "project_name": "Marketing Website",
    "rounded_hours": 2.25,
    "spent_date": "2017-03-02",
    "started_time": "3:00pm",
    "task_id": 8083365,
    "task_name": "Graphic Design",
    "timer_started_at": null,
    "updated_at": "2017-06-27T16:47:14Z",
    "user_id": 1782959,
    "user_name": "Kim Allen"
  }
}
```
