{
  "slug": "timesheet-calculator",
  "name": "gizza-ai/timesheet-calculator",
  "version": "0.1.0",
  "title": "Timesheet Calculator — Total Work Hours & Billable Amounts — gizza.ai",
  "description": "Paste a work log of start–stop times tagged by project and get total hours plus billable amounts with rates, rounding and overnight shifts.",
  "tags": [
    "timesheet calculator",
    "billable hours calculator",
    "work hours calculator",
    "time card calculator",
    "hours worked calculator",
    "project time tracker",
    "freelance hours",
    "payroll hours"
  ],
  "category": "math",
  "urls": {
    "page": "https://gizza.ai/tools/timesheet-calculator/",
    "markdown": "https://gizza.ai/tools/timesheet-calculator/index.md",
    "descriptor": "https://gizza.ai/tools/timesheet-calculator/tool.json",
    "deep_link_example": "https://gizza.ai/tools/timesheet-calculator/?log=9%3A00-12%3A30%20Acme%20kickoff%20call%0A13%3A00-17%3A15%20Acme%20build%20feature%0A2024-01-15%2010%3A00-11%3A00%20%23Beta%20review&rate=100&rates=Acme%3D150%2C%20Beta%3D90&currency=%24&round=0"
  },
  "cli": "gizza tool timesheet-calculator \"9:00-12:30 Acme kickoff call\n13:00-17:15 Acme build feature\n2024-01-15 10:00-11:00 #Beta review\"",
  "tool": {
    "description": "Parse a freeform or structured work log of start–stop times tagged by project, then total the hours per project and compute billable amounts. Each line is `[YYYY-MM-DD] START-END PROJECT [notes]` (24-hour or am/pm times; overnight ranges like 10pm-2am roll past midnight). Set an hourly `rate` (with optional per-project `rates` overrides) to get money totals, and `round` durations to a billing increment (6 minutes = 0.1h legal standard). Returns per-entry breakdowns, per-project rollups, and grand totals of minutes, hours and amount. Ideal for freelancers, consultants and payroll.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "currency": {
          "default": "$",
          "description": "Currency symbol/prefix for amounts (default `$`).",
          "type": "string"
        },
        "log": {
          "description": "The work log, one entry per line: `[YYYY-MM-DD] START-END PROJECT [notes]`, e.g. `9:00-12:30 Acme kickoff call` or `2024-01-15 13:00-17:15 #Beta`. Times are HH:MM 24-hour or 12-hour with am/pm (`9am`, `5:30pm`); if the end is earlier than the start the entry rolls past midnight (`10pm-2am`). The token after the time range is the project/tag (a leading `#` is stripped); anything after it is notes. Blank lines and lines starting with `#` or `//` are ignored.",
          "type": "string"
        },
        "rate": {
          "default": 0.0,
          "description": "Fallback hourly billing rate applied to every project (default 0 = hours only, no money). Override individual projects with `rates`.",
          "minimum": 0,
          "type": "number"
        },
        "rates": {
          "description": "Optional per-project hourly rate overrides as `Project=amount` pairs, separated by commas or newlines, e.g. `Acme=150, Beta=90`. A project not listed here uses `rate`.",
          "type": "string"
        },
        "round": {
          "default": "0",
          "description": "Billing increment in minutes — each entry's duration is rounded to the nearest multiple. `0` = exact (no rounding); `6` = tenths of an hour (the legal-billing standard); `15`/`30`/`60` for payroll.",
          "enum": [
            "0",
            "6",
            "10",
            "15",
            "30",
            "60"
          ],
          "type": "string"
        }
      },
      "required": [
        "log"
      ],
      "type": "object"
    }
  }
}