Installable skillCC-BY-4.0

Odoo Project & Timesheet

Expert guide for Odoo Project and Timesheets: task stages, billable time tracking, timesheet approval, budget alerts, and invoicing from timesheets.

BY Agentic Awesome Skills contributorsUPDATED Oct 26, 2026
INTENDED FOR✳Claude Code>_Codex↗CursorInstall in a listed agent.

instructions.md

---
name: odoo-project-timesheet
description: "Expert guide for Odoo Project and Timesheets: task stages, billable time tracking, timesheet approval, budget alerts, and invoicing from timesheets."
risk: safe
source: "self"
date_added: "2026-03-04"
---

# Odoo Project & Timesheet

## Overview

This skill helps you configure Odoo Project and Timesheets for service businesses, agencies, and consulting firms. It covers project setup with budgets, task stage management, employee timesheet logging, approval workflows, and converting approved timesheet hours to customer invoices.

## When to Use This Skill

- Setting up a new project with tasks, deadlines, and team assignments.
- Configuring billable vs. non-billable time tracking per project.
- Creating a timesheet approval workflow for managers.
- Invoicing customers based on logged hours (Time & Materials billing).

## How It Works

1. **Activate**: Mention `@odoo-project-timesheet` and describe your project or billing scenario.
2. **Configure**: Receive step-by-step setup instructions.
3. **Automate**: Get guidance on automatically generating invoices from approved timesheets.

## Examples

### Example 1: Create a Billable Project

Confirm Odoo version, edition, installed Sales/Project/Timesheets apps and billing permissions first. For Odoo 19, configure a service product with **Invoicing Policy: Based on Timesheets** and **Create on Order: Project & Task** (or a task in an existing project). Add it to a quotation for Acme, check the hourly unit and agreed $150 rate, then confirm the order only within authorized scope. Check that its task is linked to the intended sales order item.

Treat 120 planned hours and a notification at 96 hours as business requirements. Verify whether the installed version supports the desired alert; do not assume an automatic 80% budget-alert field exists.

### Example 2: Log Time on a Task

```text
Method A — Directly inside the Task (recommended for accuracy):
  Open Task → Timesheets tab → Add a Line
  Employee:    John Doe
  Date:        Today
  Description: "Initial wireframes and site map" (recommended for clear invoices; not necessarily a required field)
  Duration:    3:30  (3 hours 30 minutes)

Method B — Timesheets app (for end-of-day bulk entry):
  Menu: Timesheets → My Timesheets → New
  Project:  Website Redesign
  Task:     Wireframe Design
  Duration: 3:30
```

### Example 3: Enable Timesheet Approval Before Invoicing

Validation and invoice eligibility are separate settings. Where supported, configure the invoicing policy to include **only validated timesheets**; enabling a review workflow alone does not prove this. In a test database, record two entries, validate one, and check that the draft invoice excludes the other. Review the installed version's fixes and access rights before relying on locking behavior.

### Example 4: Invoice from Timesheets

Return to the linked sales order and reconcile its Delivered hours with eligible entries. Choose **Create Invoice → Regular invoice → Create Draft Invoice**. Check quantity, hourly rate, taxes, customer and included entries. Posting or sending requires billing authorization.

See the [Odoo 19 time-and-materials guide](https://www.odoo.com/documentation/19.0/applications/sales/sales/invoicing/time_materials.html) and [Odoo's validated-timesheet correction](https://mergebot.odoo.com/odoo/odoo/pull/261524).

## Best Practices

- ✅ **Do:** Verify the **only validated timesheets** invoicing setting and test exclusion of unvalidated hours before billing.
- ✅ **Do:** Agree an overrun threshold and verify a supported notification mechanism in the installed version.
- ✅ **Do:** Require **timesheet descriptions** — vague entries like "Work done" on invoices destroy client trust.
- ✅ **Do:** Use **Subtasks** to break work into granular pieces while keeping the parent task on the Kanban board.
- ❌ **Don't:** Mix billable and internal projects without tagging — it corrupts profitability and utilization reports.
- ❌ **Don't:** Log time on the Project itself (without a Task) — it cannot be reported at the task level.

## Limitations

- **Timesheet Approval** is an Enterprise-only feature in some Odoo versions — verify your plan includes it.
- Does not cover **Project Forecast** (resource capacity planning) — that requires the Enterprise Forecast app.
- **Time & Materials** invoicing works well for hourly billing but is not suited for **fixed-price projects** — use milestones or manual invoice lines for those.
- Timesheet entries logged outside an active project-task pair (e.g., on internal projects) are not assignable to customer invoices without custom configuration.
COMPATIBILITY & REFERENCES

Platform guidance

Imported SKILL.md format for Claude Code, Codex and Cursor. Review the complete instructions and required tools before use. Package integrity checked; individual agent behavior has not been tested.