{"id":18465537,"url":"https://github.com/numtide/freelancer-toolbox","last_synced_at":"2025-04-08T08:31:53.923Z","repository":{"id":95407429,"uuid":"477788002","full_name":"numtide/freelancer-toolbox","owner":"numtide","description":"A set of tools useful for freelancing","archived":false,"fork":false,"pushed_at":"2025-02-07T12:56:39.000Z","size":213,"stargazers_count":5,"open_issues_count":5,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-02T23:55:51.044Z","etag":null,"topics":["buildbot-numtide"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numtide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-04T16:41:23.000Z","updated_at":"2025-03-11T19:57:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"6dd4d89e-17df-4ea0-a0f9-180def7ea81c","html_url":"https://github.com/numtide/freelancer-toolbox","commit_stats":null,"previous_names":["numtide/freelancer-toolbox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Ffreelancer-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Ffreelancer-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Ffreelancer-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Ffreelancer-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numtide","download_url":"https://codeload.github.com/numtide/freelancer-toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247804584,"owners_count":20999017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildbot-numtide"],"created_at":"2024-11-06T09:13:26.021Z","updated_at":"2025-04-08T08:31:53.911Z","avatar_url":"https://github.com/numtide.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Harvest invoice calculator\n\nCreate your invoice based on [Harvest](https://numtide.harvestapp.com) timesheets\nand calculate the exchange rate to your currency using [Transferwise](https://transferwise.com).\n\nOptional: generate invoice using Sevdesk\n\n## Requirements\n\nGenerate your personal access token in Harvest using [this page](https://id.getharvest.com/oauth2/access_tokens/new).\n\n```console\ncp .envrc.local-template .envrc.local\n```\n\nSave your Account ID and your token in `.envrc.local`\n\n## Usage / Examples\n\n* Generate for the current month\n\n```console\nharvest-exporter\n```\n\n* Generate for march:\n\n```console\nharvest-exporter --month 3\n```\n\n* Filter by user\n\n```console\nharvest-exporter --user \"Hans Maier\"\n```\n\n* Generate using json output\n\n```console\nharvest-exporter --format json\n```\n\n* Generate using other currency\n\n```console\nharvest-exporter --currency CHF\n```\n\n* Override hourly rate:\n\n```\nharvest-exporter  --hourly-rate 100\n```\n\nThis will override the hourly rate reported by harvest prior to applying the nutmide rate.\n\n* Filter by client:\n\n```\nharvest-exporter --client \"Some client\"\n```\n\nThis can be also used to export hours for clients that are external to numtide (client name starting with \"External -\")\n\n* Generate an invoice with [sevdesk](https://sevdesk.de)\n\nGenerate a bill from the harvest exprt for the customer with the ID 1000\n\n```\n$ sevdesk-invoicer --customer \"1000\" harvest.json\n```\n\n* Calculate working days from harvest time report.\n\n  For income tax in Germany one can claim money back for each day. The time report can be obtained from [here](https://numtide.harvestapp.com/reports) for each user.\n  Than run this script:\n\n\n``` console\n$ working-days-calculator report.csv\nWorking days: 171 from 2022-01-12 00:00:00 to 2022-12-29 00:00:00\n```\n\n## Kimai Usage/Examples\n\nExports the last month timesheets of user Jon for client Bob  \n```\n./bin/kimai-exporter --client Bob --user Jon\n```\n\n* German income tax estimator\n\nCalculates how much money still needs to be paid for the current year, given the current revenu, expenses and already payed pre-tax.\n\n```\n$ nix shell $HOME/git/harvest-invoice-calculator#sevdesk-invoicer -c sevdesk-tax-estimator --tax-office-name 'Finanzamt Berlin Finanzkasse' --harvest-folder 2024 --wise-folder statements/2024\n...\nTaxes left to pay: XXXXX.XX\n```\n\n## API References\n\n* [Harvest](https://help.getharvest.com/api-v2)\n* [Transferwise](https://api-docs.transferwise.com/#quotes-get-temporary-quote)\n* [Sevdesk](https://my.sevdesk.de/api/InvoiceAPI/doc.html#tag/Invoice)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtide%2Ffreelancer-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumtide%2Ffreelancer-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtide%2Ffreelancer-toolbox/lists"}