{"id":26409118,"url":"https://github.com/peerigon/clockodo","last_synced_at":"2026-02-23T23:19:35.981Z","repository":{"id":38172519,"uuid":"124894914","full_name":"peerigon/clockodo","owner":"peerigon","description":"Unofficial JavaScript/TypeScript SDK for Clockodo","archived":false,"fork":false,"pushed_at":"2026-02-13T00:01:28.000Z","size":4643,"stargazers_count":23,"open_issues_count":8,"forks_count":7,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-13T09:12:14.861Z","etag":null,"topics":["clockodo","javascript","sdk","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peerigon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2018-03-12T13:39:54.000Z","updated_at":"2026-02-12T23:49:35.000Z","dependencies_parsed_at":"2025-04-09T21:19:21.011Z","dependency_job_id":"2d96e558-2688-4b09-a0bc-93f4b70e6f44","html_url":"https://github.com/peerigon/clockodo","commit_stats":{"total_commits":441,"total_committers":21,"mean_commits":21.0,"dds":0.564625850340136,"last_synced_commit":"3f1a4db3b584061b19b0386b8086116b4a8a1736"},"previous_names":[],"tags_count":174,"template":false,"template_full_name":null,"purl":"pkg:github/peerigon/clockodo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peerigon%2Fclockodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peerigon%2Fclockodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peerigon%2Fclockodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peerigon%2Fclockodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peerigon","download_url":"https://codeload.github.com/peerigon/clockodo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peerigon%2Fclockodo/sbom","scorecard":{"id":726468,"data":{"date":"2025-08-11","repo":{"name":"github.com/peerigon/clockodo","commit":"65a7daa68ccbaf39e77567a3a19b004f6a54f1ef"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'packages' permission set to 'write': .github/workflows/test-and-release.yml:33","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/test-and-release.yml:26","Warn: no topLevel permission defined: .github/workflows/test-and-release.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:   4 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 third-party GitHubAction dependencies pinned","Info:   1 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v25.2.1 not signed: https://api.github.com/repos/peerigon/clockodo/releases/237494159","Warn: release artifact v25.2.0 not signed: https://api.github.com/repos/peerigon/clockodo/releases/220927030","Warn: release artifact v25.1.0 not signed: https://api.github.com/repos/peerigon/clockodo/releases/216949764","Warn: release artifact v25.0.0 not signed: https://api.github.com/repos/peerigon/clockodo/releases/204470123","Warn: release artifact v25.0.0-beta.3 not signed: https://api.github.com/repos/peerigon/clockodo/releases/204469025","Warn: release artifact v25.2.1 does not have provenance: https://api.github.com/repos/peerigon/clockodo/releases/237494159","Warn: release artifact v25.2.0 does not have provenance: https://api.github.com/repos/peerigon/clockodo/releases/220927030","Warn: release artifact v25.1.0 does not have provenance: https://api.github.com/repos/peerigon/clockodo/releases/216949764","Warn: release artifact v25.0.0 does not have provenance: https://api.github.com/repos/peerigon/clockodo/releases/204470123","Warn: release artifact v25.0.0-beta.3 does not have provenance: https://api.github.com/repos/peerigon/clockodo/releases/204469025"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T12:58:03.698Z","repository_id":38172519,"created_at":"2025-08-22T12:58:03.698Z","updated_at":"2025-08-22T12:58:03.698Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29668654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T23:24:07.480Z","status":"ssl_error","status_checked_at":"2026-02-20T23:24:06.202Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["clockodo","javascript","sdk","typescript"],"created_at":"2025-03-17T19:19:14.666Z","updated_at":"2026-02-21T02:00:38.738Z","avatar_url":"https://github.com/peerigon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clockodo\n\n**Unofficial JavaScript/TypeScript SDK for [Clockodo](https://www.clockodo.com).**\n\n[![Version on NPM](https://img.shields.io/npm/v/clockodo?style=for-the-badge)](https://www.npmjs.com/package/clockodo)\n[![Semantically released](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge)](https://github.com/semantic-release/semantic-release)\n[![Monthly downloads on NPM](https://img.shields.io/npm/dm/clockodo?style=for-the-badge)](https://www.npmjs.com/package/clockodo)\u003cbr\u003e\n[![NPM Bundle size minified](https://img.shields.io/bundlephobia/min/clockodo?style=for-the-badge)](https://bundlephobia.com/result?p=clockodo)\n[![NPM Bundle size minified and gzipped](https://img.shields.io/bundlephobia/minzip/clockodo?style=for-the-badge)](https://bundlephobia.com/result?p=clockodo)\u003cbr\u003e\n[![License](https://img.shields.io/npm/l/clockodo?style=for-the-badge)](./LICENSE)\n\n## Installation and usage\n\n```\nnpm install clockodo\n```\n\nFor the constructor arguments, you must get the user (email) and clockodo API key from the \"[My area](https://my.clockodo.com/en/users/editself)\" section of Clockodo's website.\n\n```js\nimport { Clockodo } from \"clockodo\";\n\nconst clockodo = new Clockodo({\n  client: {\n    // You need to add some information about yourself that will be\n    // sent along every request,\n    // see https://docs.clockodo.com/#section/Clockodo-REST-API/Client-identification\n    // PLEASE NOTE: name + \";\" + email must not be longer than 50 characters.\n    name: \"Your application/company\",\n    email: \"technical-contact@your-company.com\",\n  },\n  authentication: {\n    user: \"test-user@example.com\",\n    // You can get your API key from https://my.clockodo.com/en/users/editself\n    apiKey: \"kjfdskj643fgnlksf343kdslm\",\n  },\n});\n```\n\n## Config\n\n- `client`: Specify a `name` and an `email` for the `X-Clockodo-External-Application` header\n- `authentication`: Specify a `user` and an `apiKey` to authenticate every request\n- `baseUrl`: Points to the Clockodo API. Defaults to `https://my.clockodo.com/api`\n\nYou can update the configuration later like this:\n\n```js\nclockodo.api.config({\n  authentication: {\n    /* ... */\n  },\n});\n```\n\n## API\n\nWe provide methods for Clockodo endpoints and normalize payload keys automatically: query params and request bodies are mapped from camelCase to snake_case (deeply), response bodies are mapped from snake_case to camelCase (deeply), and empty query values (`undefined`, `null`, `\"\"`) are omitted. You can find the implementation in [`src/lib/mappings.ts`](./src/lib/mappings.ts).\n\nFor any questions about the different properties please consult the official Clockodo API documentation.\n\nSome constants are also available for import:\n\n```js\nimport { AbsenceStatus, AbsenceType, Billability, EntryType } from \"clockodo\";\n\nconsole.log(EntryType.Time); // 1\nconsole.log(EntryType.LumpsumValue); // 2\nconsole.log(EntryType.LumpsumService); // 3\n\nconsole.log(Billability.NotBillable); // 0\nconsole.log(Billability.Billable); // 1\nconsole.log(Billability.Billed); // 2\n```\n\nCheckout [models](https://github.com/peerigon/clockodo/blob/main/src/models) for more constants and TypeScript types.\n\n---\n\n## Get Methods\n\n### [getAbsence()](https://docs.clockodo.com/#tag/Absence/operation/getAbsenceByIdV4)\n\nGets a selected absence by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getAbsence({ id: 7 });\n```\n\n---\n\n### [getUsersAccessCustomersProjects()](https://docs.clockodo.com/#tag/User/operation/getUsersAccessCustomersProjectByIdV2)\n\nGets a user's (readonly) access rights for customers and projects.\n\n#### Example:\n\n```js\nawait clockodo.getUsersAccessCustomersProjects({ usersId: 67325 });\n```\n\n---\n\n### [getUsersAccessServices()](https://docs.clockodo.com/#tag/User/operation/getUsersAccessServiceByIdV2)\n\nGets a user's (readonly) access rights for services.\n\n#### Example:\n\n```js\nawait clockodo.getUsersAccessServices({ usersId: 67325 });\n```\n\n---\n\n### [getAbsences()](https://docs.clockodo.com/#tag/Absence/operation/getAbsencesV4)\n\nGets a list of absences in the provided year\n\n#### Example:\n\n```js\nawait clockodo.getAbsences({ year: 2018 });\n```\n\n---\n\n### [getClock()](https://docs.clockodo.com/#tag/Clock/operation/getClockV2)\n\nGet currently running entry for the credentials attached to Clockodo object.\n\n#### Example:\n\n```js\nawait clockodo.getClock();\n```\n\n---\n\n### [getCustomer()](https://docs.clockodo.com/#tag/Customer/operation/getCustomerByIdV3)\n\nGet specific customer by ID\n\n#### Example:\n\n```js\nawait clockodo.getCustomer({ id: 777 });\n```\n\n---\n\n### [getCustomers()](https://docs.clockodo.com/#tag/Customer/operation/getCustomersV3)\n\nGet all customers from all pages.\n\n#### Example:\n\n```js\nawait clockodo.getCustomers();\n// or\nawait clockodo.getCustomers({\n  filter: {\n    // Filter by active flag\n    active: true,\n  },\n});\n```\n\n---\n\n### [getCustomersPage()](https://docs.clockodo.com/#tag/Customer/operation/getCustomersV3)\n\nGet all customers from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getCustomersPage({ page: 2 });\n```\n\n---\n\n### [getEntry()](https://docs.clockodo.com/#tag/Entry/operation/getEntryByIdV2)\n\nGet an entry by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getEntry({ id: 4 });\n```\n\n---\n\n### splitAllEntriesAtMidnight()\n\nSplits all entries for a given user and day at midnight.\n\n#### Example:\n\n```js\nawait clockodo.splitAllEntriesAtMidnight({\n  day: \"2026-02-17\",\n  usersId: 123,\n});\n```\n\n---\n\n### [getEntries()](https://docs.clockodo.com/#tag/Entry/operation/getEntriesV2)\n\nGet all entries from all pages.\n\n#### Example:\n\n```js\nimport { Billability } from \"clockodo\";\n\nawait clockodo.getEntries({\n  // timeSince and timeUntil are required\n  timeSince: \"2017-08-18T00:00:00Z\",\n  timeUntil: \"2018-02-09T00:00:00Z\",\n  filter: {\n    // You can also add additional filters here\n    billable: Billability.Billed,\n  },\n});\n```\n\n---\n\n### [getEntriesPage()](https://docs.clockodo.com/#tag/Entry/operation/getEntriesV2)\n\nGet all entries from a specific page\n\n#### Example:\n\n```js\nawait clockodo.getEntriesPage({\n  timeSince: \"2017-08-18T00:00:00Z\",\n  timeUntil: \"2018-02-09T00:00:00Z\",\n  page: 2,\n});\n```\n\n---\n\n### [getEntryGroups()](https://docs.clockodo.com/#tag/EntryGroup/operation/getEntrygroupsV2)\n\nGet a group of entries defined by your criteria.\n\n#### Example:\n\n```js\nawait clockodo.getEntryGroups({\n  timeSince: \"2017-08-18T00:00:00Z\",\n  timeUntil: \"2018-02-09T00:00:00Z\",\n  grouping: [\"customersId\", \"projectsId\"],\n  roundToMinutes: 15,\n});\n```\n\n---\n\n### [getEntriesTexts()](https://docs.clockodo.com/#tag/EntryText/operation/getEntriesTextsV3)\n\nRetreive all descriptions (and no additional info) entered for time and lump sum entries from all pages.\n\n#### Example:\n\n```js\nawait clockodo.getEntriesTexts({ term: \"meeting with client\" });\n```\n\n---\n\n### [getEntriesTextsPage()](https://docs.clockodo.com/#tag/EntryText/operation/getEntriesTextsV3)\n\nRetreive all descriptions from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getEntriesTextsPage({ term: \"meeting with client\", page: 2 });\n```\n\n---\n\n### [getProject()](https://docs.clockodo.com/#tag/Project/operation/getProjectByIdV4)\n\nGet a project by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getProject({ id: 1985 });\n```\n\n---\n\n### [getProjects()](https://docs.clockodo.com/#tag/Project/operation/getProjectsV4)\n\nGet all projects from all pages.\n\n#### Example:\n\n```js\nawait clockodo.getProjects();\n// or\nawait clockodo.getProjects({\n  filter: {\n    // Filter by a specific customer id\n    customersId: 123,\n    // Filter by active flag\n    active: true,\n  },\n});\n```\n\n---\n\n### [getProjectsPage()](https://docs.clockodo.com/#tag/Project/operation/getProjectsV4)\n\nGet all projects from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getProjectsPage({ page: 2 });\n```\n\n---\n\n### [getProjectsReports()](https://docs.clockodo.com/#tag/ProjectReport/operation/getProjectsReportsV4)\n\nGet all project report rows from all pages.\n\n#### Example:\n\n```js\nawait clockodo.getProjectsReports();\n```\n\n---\n\n### [getProjectsReportsPage()](https://docs.clockodo.com/#tag/ProjectReport/operation/getProjectsReportsV4)\n\nGet project report rows from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getProjectsReportsPage({ page: 2 });\n```\n\n---\n\n### [getSubproject()](https://docs.clockodo.com/#tag/Subproject/operation/getSubprojectByIdV3)\n\nGet a subproject by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getSubproject({ id: 11 });\n```\n\n---\n\n### [getSubprojects()](https://docs.clockodo.com/#tag/Subproject/operation/getSubprojectsV3)\n\nGet all subprojects from all pages.\n\n#### Example:\n\n```js\nawait clockodo.getSubprojects();\n```\n\n---\n\n### [getSubprojectsPage()](https://docs.clockodo.com/#tag/Subproject/operation/getSubprojectsV3)\n\nGet all subprojects from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getSubprojectsPage({ page: 2 });\n```\n\n---\n\n### [getService()](https://docs.clockodo.com/#tag/Service/operation/getServiceByIdV4)\n\nGet a service by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getService({ id: 10 });\n```\n\n---\n\n### [getServices()](https://docs.clockodo.com/#tag/Service/operation/getServicesV4)\n\nGet list of all services\n\n#### Example:\n\n```js\nawait clockodo.getServices();\n```\n\n---\n\n### [getServicesPage()](https://docs.clockodo.com/#tag/Service/operation/getServicesV4)\n\nGet a list of services from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getServicesPage({ page: 2 });\n```\n\n---\n\n### [getTeam()](https://docs.clockodo.com/#tag/Team/operation/getTeamByIdV3)\n\nGet team by id.\n\n#### Example:\n\n```js\nawait clockodo.getTeam({ id: 10 });\n```\n\n---\n\n### [getTeams()](https://docs.clockodo.com/#tag/Team/operation/getTeamsV3)\n\nGet list of all teams.\n\n#### Example:\n\n```js\nawait clockodo.getTeams();\n```\n\n---\n\n### [getLumpSumService()](https://docs.clockodo.com/#tag/LumpSumService/operation/getLumpSumServiceByIdV4)\n\nGet a lumpsum service by its ID.\n\n#### Example:\n\n```js\nawait clockodo.getLumpSumService({ id: 10 });\n```\n\n---\n\n### [getLumpSumServices()](https://docs.clockodo.com/#tag/LumpSumService/operation/getLumpSumServicesV4)\n\nGet a list of all lumpsum services\n\n#### Example:\n\n```js\nawait clockodo.getLumpSumServices();\n```\n\n---\n\n### [getLumpSumServicesPage()](https://docs.clockodo.com/#tag/LumpSumService/operation/getLumpSumServicesV4)\n\nGet a list of lumpsum services from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getLumpSumServicesPage({ page: 2 });\n```\n\n---\n\n### [getTargethoursRow()](https://docs.clockodo.com/#tag/TargetHour/operation/getTargethourById)\n\nGet a specific target hour period for a specific user by its ID (not the ID of the user)\n\n#### Example:\n\n```js\nawait clockodo.getTargethoursRow({ id: 1234 });\n```\n\n---\n\n### [getTargethours()](https://docs.clockodo.com/#tag/TargetHour/operation/getTargethours)\n\nGet list of target hours for all users, with option to pass an object with an `usersId` to filter the history of target hours to a specific user.\n\n#### Example:\n\n```js\nawait clockodo.getTargethours();\n// or\nawait clockodo.getTargethours({ usersId: 346923 });\n```\n\n---\n\n### [getUser()](https://docs.clockodo.com/#tag/User/operation/getUserByIdV3)\n\nGet a co-worker by their ID.\n\n#### Example:\n\n```js\nawait clockodo.getUser({ id: 1263 });\n```\n\n---\n\n### [getUsers()](https://docs.clockodo.com/#tag/User/operation/getUsersV3)\n\nGet list of users\n\n#### Example:\n\n```js\nawait clockodo.getUsers();\n```\n\n---\n\n### getSurchargeModel()\n\nGet a surcharge model by ID.\n\n#### Example:\n\n```js\nawait clockodo.getSurchargeModel({ id: 7 });\n```\n\n---\n\n### getSurchargeModels()\n\nGet all surcharge models.\n\n#### Example:\n\n```js\nawait clockodo.getSurchargeModels();\n```\n\n---\n\n### [getUserReport()](https://docs.clockodo.com/#tag/UserReport/operation/getUserreportById)\n\nGet a report for a specific user and year.\n\n#### Example:\n\n```js\nawait clockodo.getUserReport({ usersId: 1263, year: 2017 });\n```\n\n---\n\n### [getUserReports()](https://docs.clockodo.com/#tag/UserReport/operation/getUserreports)\n\nGet an employee/user's report, which contains data such as hours worked and holidays taken.\n\n#### Example:\n\n```js\nawait clockodo.getUserReports({ year: 2017, type: 1 });\n```\n\n---\n\n### [getNonbusinessGroups()](https://docs.clockodo.com/#tag/NonbusinessGroup/operation/getNonbusinessGroupsV2)\n\nGets all nonbusiness groups.\n\n#### Example:\n\n```js\nawait clockodo.getNonbusinessGroups();\n```\n\n---\n\n### [getNonbusinessGroup()](https://docs.clockodo.com/#tag/NonbusinessGroup/operation/getNonbusinessGroupByIdV2)\n\nGets a nonbusiness group by ID.\n\n#### Example:\n\n```js\nawait clockodo.getNonbusinessGroup({ id: 123 });\n```\n\n---\n\n### [getNonbusinessDays()](https://docs.clockodo.com/#tag/NonbusinessDay/operation/getNonbusinessDaysV2)\n\nGets all nonbusiness days for a given year.\n\n#### Example:\n\n```js\nawait clockodo.getNonbusinessDays({\n  nonbusinessGroupId: 123,\n  year: 2021,\n});\n```\n\n---\n\n### [getNonbusinessDay()](https://docs.clockodo.com/#tag/NonbusinessDay/operation/getNonbusinessDayByIdV2)\n\nGets a nonbusiness day by ID.\n\n#### Example:\n\n```js\nawait clockodo.getNonbusinessDay({ id: 12, year: 2026 });\n```\n\n---\n\n### [getMe()](https://docs.clockodo.com/#tag/User/operation/getUsersMeV4)\n\nGets user and company settings for the logged-in user.\n\n#### Example:\n\n```js\nawait clockodo.getMe();\n```\n\n---\n\n### [getWorkTimesPage()](https://docs.clockodo.com/#tag/WorkTime/operation/getWorkTimesV2)\n\nGets work times from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getWorkTimesPage({\n  usersId: 123,\n  dateSince: \"2026-02-01\",\n  dateUntil: \"2026-02-07\",\n  page: 2,\n});\n```\n\n---\n\n### [getWorkTimes()](https://docs.clockodo.com/#tag/WorkTime/operation/getWorkTimesV2)\n\nGets all work time pages for the given filter.\n\n#### Example:\n\n```js\nawait clockodo.getWorkTimes({\n  usersId: 123,\n  dateSince: \"2026-02-01\",\n  dateUntil: \"2026-02-07\",\n});\n```\n\n---\n\n### [getWorkTimesChangeRequestsPage()](https://docs.clockodo.com/#tag/WorkTime/operation/getWorkTimesChangeRequestsV2)\n\nGets work time change requests from a specific page.\n\n#### Example:\n\n```js\nawait clockodo.getWorkTimesChangeRequestsPage({\n  usersId: 123,\n  dateSince: \"2026-02-01\",\n  dateUntil: \"2026-02-07\",\n  page: 2,\n});\n```\n\n---\n\n### [getWorkTimesChangeRequests()](https://docs.clockodo.com/#tag/WorkTime/operation/getWorkTimesChangeRequestsV2)\n\nGets all work time change request pages for the given filter.\n\n#### Example:\n\n```js\nawait clockodo.getWorkTimesChangeRequests({\n  usersId: 123,\n  dateSince: \"2026-02-01\",\n  dateUntil: \"2026-02-07\",\n});\n```\n\n---\n\n### [getOvertimecarry()](https://docs.clockodo.com/#tag/OvertimeCarry/operation/getOvertimeCarryV3)\n\nGets overtime carry rows.\n\n#### Example:\n\n```js\nawait clockodo.getOvertimecarry({ usersId: 17, year: 2028 });\n```\n\n---\n\n### [getOvertimecarryRow()](https://docs.clockodo.com/#tag/OvertimeCarry/operation/getOvertimeCarryByIdV3)\n\nGets an overtime carry row by ID.\n\n#### Example:\n\n```js\nawait clockodo.getOvertimecarryRow({ id: 7 });\n```\n\n---\n\n### [getHolidaysQuotas()](https://docs.clockodo.com/#tag/HolidayQuota/operation/getHolidaysQuotaV2)\n\nGets holiday quota rows.\n\n#### Example:\n\n```js\nawait clockodo.getHolidaysQuotas({ usersId: 17, year: 2028 });\n```\n\n---\n\n### [getHolidaysQuota()](https://docs.clockodo.com/#tag/HolidayQuota/operation/getHolidaysQuotumByIdV2)\n\nGets a holiday quota row by ID.\n\n#### Example:\n\n```js\nawait clockodo.getHolidaysQuota({ id: 7 });\n```\n\n---\n\n### [getHolidaysCarryovers()](https://docs.clockodo.com/#tag/HolidayCarryover/operation/getHolidaysCarryV3)\n\nGets holiday carryover rows.\n\n#### Example:\n\n```js\nawait clockodo.getHolidaysCarryovers({ usersId: 17, year: 2028 });\n```\n\n---\n\n### [getHolidaysCarryover()](https://docs.clockodo.com/#tag/HolidayCarryover/operation/getHolidaysCarryByIdV3)\n\nGets a holiday carryover row by ID.\n\n#### Example:\n\n```js\nawait clockodo.getHolidaysCarryover({ id: 7 });\n```\n\n---\n\n## Post Methods\n\n### [addAbsence()](https://docs.clockodo.com/#tag/Absence/operation/createAbsenceV4)\n\nDefault behavior adds an absence for the user attached to the credentials given to the clockodo object. To add the absence for another user you can use the `usersId` option if you have the permissions.\n\n#### Example:\n\n```js\nimport { AbsenceType } from \"clockodo\";\n\nawait clockodo.addAbsence({\n  dateSince: \"2017-08-18T00:00:00Z\",\n  dateUntil: \"2018-02-09T00:00:00Z\",\n  type: AbsenceType.SpecialLeave,\n  note: \"elternzeit\",\n  usersId: 12321,\n});\n```\n\n---\n\n### [addCustomer()](https://docs.clockodo.com/#tag/Customer/operation/createCustomerV3)\n\nAdds a customer to the organization.\n\n#### Example:\n\n```js\nawait clockodo.addCustomer({ name: \"Weyland-Yutani\" });\n```\n\n---\n\n### [addLumpsumService()](https://docs.clockodo.com/#tag/LumpSumService/operation/createLumpSumServiceV4)\n\nAdds a lumpsum service.\n\n#### Example:\n\n```js\nawait clockodo.addLumpsumService({ name: \"Flat Rate Support\", price: 99 });\n```\n\n---\n\n### [addNonbusinessGroup()](https://docs.clockodo.com/#tag/NonbusinessGroup/operation/createNonbusinessGroupV2)\n\nCreates a nonbusiness group.\n\n#### Example:\n\n```js\nawait clockodo.addNonbusinessGroup({ name: \"NRW\", preset: \"\" });\n```\n\n---\n\n### [addNonbusinessDay()](https://docs.clockodo.com/#tag/NonbusinessDay/operation/createNonbusinessDayV2)\n\nCreates a nonbusiness day.\n\n#### Example:\n\n```js\nawait clockodo.addNonbusinessDay({\n  nonbusinessGroupId: 2,\n  type: \"DISTINCT_ONCE\",\n  name: \"Labor Day\",\n});\n```\n\n---\n\n### [addOvertimecarry()](https://docs.clockodo.com/#tag/OvertimeCarry/operation/createOvertimeCarryV3)\n\nCreates an overtime carry row.\n\n#### Example:\n\n```js\nawait clockodo.addOvertimecarry({\n  usersId: 17,\n  year: 2028,\n  hours: 8,\n  note: \"carryover\",\n});\n```\n\n---\n\n### [addHolidaysQuota()](https://docs.clockodo.com/#tag/HolidayQuota/operation/createHolidaysQuotumV2)\n\nCreates a holidays quota row.\n\n#### Example:\n\n```js\nawait clockodo.addHolidaysQuota({\n  usersId: 17,\n  yearSince: 2028,\n  count: 30,\n});\n```\n\n---\n\n### [addHolidaysCarryover()](https://docs.clockodo.com/#tag/HolidayCarryover/operation/createHolidaysCarryV3)\n\nCreates a holidays carryover row.\n\n#### Example:\n\n```js\nawait clockodo.addHolidaysCarryover({\n  usersId: 17,\n  year: 2028,\n  count: 5,\n});\n```\n\n---\n\n### [addEntry()](https://docs.clockodo.com/#tag/Entry/operation/createEntryV2)\n\nCreates an entry for either the user attached to the Clockodo instance or the passed in `usersId`. Depending on the type of entry different properties are required:\n\n| Type of entry         | Required properties                                                                  |\n| :-------------------- | :----------------------------------------------------------------------------------- |\n| Manual time entry     | `customersId`, `servicesId`, `billable`, `timeSince`, `timeUntil`                    |\n| Lumpsum value entry   | `customersId`, `servicesId`, `billable`, `timeSince`, `lumpsum`                      |\n| Lumpsum service entry | `customersId`, `lumpsumServicesAmount`, `lumpsumServicesId`, `billable`, `timeSince` |\n\n#### Example:\n\n```js\nimport { Billability } from \"clockodo\";\n\nawait clockodo.addEntry({\n  customersId: 1,\n  servicesId: 2,\n  billable: Billability.Billable,\n  timeSince: \"2018-10-01T00:00:00Z\",\n  timeUntil: \"2018-10-01T03:00:00Z\",\n});\n```\n\n---\n\n### [addProject()](https://docs.clockodo.com/#tag/Project/operation/createProjectV4)\n\nCreates a project for an existing customer.\n\n#### Example:\n\n```js\nawait clockodo.addProject({ name: \"Clockodo Api Wrapper\", customersId: 1 });\n```\n\n---\n\n### [addSubproject()](https://docs.clockodo.com/#tag/Subproject/operation/createSubprojectV3)\n\nCreates a subproject for an existing project.\n\n#### Example:\n\n```js\nawait clockodo.addSubproject({ projectsId: 1, name: \"SDK Migration\" });\n```\n\n---\n\n### [addService()](https://docs.clockodo.com/#tag/Service/operation/createServiceV4)\n\nAdds to the list of services offered by your organization.\n\n#### Example:\n\n```js\nawait clockodo.addService({ name: \"Thinking\" });\n```\n\n---\n\n### [addTeam()](https://docs.clockodo.com/#tag/Team/operation/createTeamV3)\n\nCreates a new team under your organization.\n\n#### Example:\n\n```js\nawait clockodo.addTeam({ name: \"Gold Team\" });\n```\n\n---\n\n### [addUser()](https://docs.clockodo.com/#tag/User/operation/createUserV3)\n\nCreates new user in organization.\n\n#### Example:\n\n```js\nimport { UserRole } from \"clockodo\";\n\nawait clockodo.addUser({\n  name: \"Merkel\",\n  number: \"08\",\n  email: \"angela@eu.eu\",\n  role: UserRole.Owner,\n});\n```\n\n---\n\n### addSurchargeModel()\n\nAdds a surcharge model.\n\n#### Example:\n\n```js\nawait clockodo.addSurchargeModel({ name: \"Night Shift\", accumulation: true });\n```\n\n---\n\n### [startClock()](https://docs.clockodo.com/#tag/Clock/operation/createClockV2)\n\nStart a new running clockodo entry.\n\n#### Example:\n\n```js\nimport { Billability } from \"clockodo\";\n\nawait clockodo.startClock({\n  customersId: 24,\n  servicesId: 7,\n  projectsId: 365,\n  billable: Billability.Billable,\n});\n```\n\n---\n\n### [addWorkTimesChangeRequest()](https://docs.clockodo.com/#tag/WorkTime/operation/createWorkTimesChangeRequestV2)\n\nCreates a work time change request.\n\n#### Example:\n\n```js\nimport { WorkTimeChangeRequestIntervalType } from \"clockodo\";\n\nawait clockodo.addWorkTimesChangeRequest({\n  date: \"2026-02-17\",\n  usersId: 123,\n  changes: [\n    {\n      type: WorkTimeChangeRequestIntervalType.Add,\n      timeSince: \"2026-02-17T08:00:00Z\",\n      timeUntil: \"2026-02-17T12:00:00Z\",\n    },\n  ],\n});\n```\n\n---\n\n### [approveWorkTimesChangeRequest()](https://docs.clockodo.com/#tag/WorkTime/operation/approveWorkTimesChangeRequestByIdV3)\n\nApproves a work time change request by ID.\n\n#### Example:\n\n```js\nawait clockodo.approveWorkTimesChangeRequest({ id: 17 });\n```\n\n---\n\n### [declineWorkTimesChangeRequest()](https://docs.clockodo.com/#tag/WorkTime/operation/createWorkTimesChangeRequestsDeclineByIdV2)\n\nDeclines a work time change request by ID.\n\n#### Example:\n\n```js\nawait clockodo.declineWorkTimesChangeRequest({ id: 17 });\n```\n\n---\n\n## Put methods\n\n### [changeClockDuration()](https://docs.clockodo.com/#tag/Clock/operation/updateClockByIdV2)\n\nChanges the duration of an entry. Because the ID returned by clock methods is just the entry ID, and this function can only be used after an entry is finished, there seems to be no difference from using editEntry().\n\n#### Example:\n\n```js\nawait clockodo.changeClockDuration({\n  entriesId: 7082,\n  duration: 540,\n  durationBefore: 300,\n});\n```\n\n---\n\n### [editAbsence()](https://docs.clockodo.com/#tag/Absence/operation/updateAbsenceByIdV4)\n\nEdit existing Clockodo absence.\n\n#### Example:\n\n```js\nawait clockodo.editAbsence({ id: 74, note: \"I know what he did last summer\" });\n```\n\n---\n\n### [editCustomer()](https://docs.clockodo.com/#tag/Customer/operation/updateCustomerByIdV3)\n\nEdit existing Clockodo customer.\n\n#### Example:\n\n```js\nawait clockodo.editCustomer({ id: 15, name: \"The Mystery Gang\" });\n```\n\n---\n\n### [editLumpsumService()](https://docs.clockodo.com/#tag/LumpSumService/operation/updateLumpSumServiceByIdV4)\n\nEdit an existing lumpsum service.\n\n#### Example:\n\n```js\nawait clockodo.editLumpsumService({ id: 15, name: \"Updated Flat Rate\" });\n```\n\n---\n\n### [editEntry()](https://docs.clockodo.com/#tag/Entry/operation/updateEntryByIdV2)\n\nChanges the values of a Clockodo entry. Unlike changeClockDuration(), editEntry() can seemingly mutate any of the accepted parameters even when the entry is running.\n\n#### Example:\n\n```js\nawait clockodo.editEntry({ id: 365, duration: 540 });\n```\n\n---\n\n### [editEntryGroup()](https://docs.clockodo.com/#tag/EntryGroup/operation/updateEntrygroupV2)\n\nAllows for mass edit of entries based on a set of filters.\n\n#### Example:\n\n```js\nimport { Billability } from \"clockodo\";\n\nawait clockodo.editEntryGroup({\n  timeSince: \"2017-08-18T00:00:00Z\",\n  timeUntil: \"2018-02-09T00:00:00Z\",\n  filter: {\n    text: \"Browsing Reddit\",\n    billable: Billability.NotBillable,\n  },\n});\n```\n\n---\n\n### [editProject()](https://docs.clockodo.com/#tag/Project/operation/updateProjectByIdV4)\n\nEdit existing project.\n\n#### Example:\n\n```js\nawait clockodo.editProject({ id: 20, name: \"Awesome new project\" });\n```\n\n---\n\n### [completeProject()](https://docs.clockodo.com/#tag/Project/operation/completeProjectByIdV4)\n\nSet a project's completion status.\n\n#### Example:\n\n```js\nawait clockodo.completeProject({ id: 20, completed: true });\n```\n\n---\n\n### [setProjectBilled()](https://docs.clockodo.com/#tag/Project/operation/updateProjectsSetBilledByIdV3)\n\nSet a project's billed status and billed amount.\n\n#### Example:\n\n```js\nawait clockodo.setProjectBilled({ id: 20, billed: true, billedMoney: 1234.5 });\n```\n\n---\n\n### [editSubproject()](https://docs.clockodo.com/#tag/Subproject/operation/updateSubprojectByIdV3)\n\nEdit existing subproject.\n\n#### Example:\n\n```js\nawait clockodo.editSubproject({ id: 20, name: \"SDK Migration Phase 2\" });\n```\n\n---\n\n### [completeSubproject()](https://docs.clockodo.com/#tag/Subproject/operation/completeSubprojectByIdV3)\n\nSet a subproject's completion status.\n\n#### Example:\n\n```js\nawait clockodo.completeSubproject({ id: 20, completed: true });\n```\n\n---\n\n### [editService()](https://docs.clockodo.com/#tag/Service/operation/updateServiceByIdV4)\n\nEdit existing service.\n\n#### Example:\n\n```js\nawait clockodo.editService({ id: 23, name: \"Room Service\" });\n```\n\n---\n\n### [editTeam()](https://docs.clockodo.com/#tag/Team/operation/updateTeamByIdV3)\n\nEdit existing team.\n\n#### Example:\n\n```js\nawait clockodo.editTeam({ id: 6324, name: \"New Team Name\" });\n```\n\n---\n\n### [editUser()](https://docs.clockodo.com/#tag/User/operation/updateUserByIdV3)\n\nEdit existing user.\n\n#### Example:\n\n```js\nawait clockodo.editUser({ id: 33, name: \"Moalo Loco\" });\n```\n\n---\n\n### editSurchargeModel()\n\nEdit an existing surcharge model.\n\n#### Example:\n\n```js\nawait clockodo.editSurchargeModel({ id: 365, name: \"ABC\" });\n```\n\n---\n\n### [editNonbusinessGroup()](https://docs.clockodo.com/#tag/NonbusinessGroup/operation/updateNonbusinessGroupByIdV2)\n\nEdits a nonbusiness group.\n\n#### Example:\n\n```js\nawait clockodo.editNonbusinessGroup({ id: 2, name: \"Holidays\" });\n```\n\n---\n\n### [editNonbusinessDay()](https://docs.clockodo.com/#tag/NonbusinessDay/operation/updateNonbusinessDayByIdV2)\n\nEdits a nonbusiness day.\n\n#### Example:\n\n```js\nawait clockodo.editNonbusinessDay({\n  id: 2,\n  name: \"Holiday\",\n  type: \"DISTINCT_RECURRING\",\n});\n```\n\n---\n\n### [editOvertimecarry()](https://docs.clockodo.com/#tag/OvertimeCarry/operation/updateOvertimeCarryByIdV3)\n\nEdits an overtime carry row.\n\n#### Example:\n\n```js\nawait clockodo.editOvertimecarry({ id: 2, hours: 8, note: \"updated\" });\n```\n\n---\n\n### [editHolidaysQuota()](https://docs.clockodo.com/#tag/HolidayQuota/operation/updateHolidaysQuotumByIdV2)\n\nEdits a holidays quota row.\n\n#### Example:\n\n```js\nawait clockodo.editHolidaysQuota({ id: 2, count: 25, note: \"updated\" });\n```\n\n---\n\n### [editHolidaysCarryover()](https://docs.clockodo.com/#tag/HolidayCarryover/operation/updateHolidaysCarryByIdV3)\n\nEdits a holidays carryover row.\n\n#### Example:\n\n```js\nawait clockodo.editHolidaysCarryover({ id: 2, count: 5, note: \"updated\" });\n```\n\n---\n\n## Delete methods\n\n### [deleteCustomer()](https://docs.clockodo.com/#tag/Customer/operation/deleteCustomerByIdV3)\n\nDeletes the customer.\n\n#### Example:\n\n```js\nawait clockodo.deleteCustomer({ id: 343 });\n```\n\n---\n\n### [deleteProject()](https://docs.clockodo.com/#tag/Project/operation/deleteProjectByIdV4)\n\nDeletes the project.\n\n#### Example:\n\n```js\nawait clockodo.deleteProject({ id: 8 });\n```\n\n---\n\n### [deleteSubproject()](https://docs.clockodo.com/#tag/Subproject/operation/deleteSubprojectByIdV3)\n\nDeletes the subproject.\n\n#### Example:\n\n```js\nawait clockodo.deleteSubproject({ id: 8 });\n```\n\n---\n\n### [deleteService()](https://docs.clockodo.com/#tag/Service/operation/deleteServiceByIdV4)\n\nDeletes the service.\n\n#### Example:\n\n```js\nawait clockodo.deleteService({ id: 94 });\n```\n\n---\n\n### [deleteUser()](https://docs.clockodo.com/#tag/User/operation/deleteUserByIdV3)\n\nDeletes user.\n\n#### Example:\n\n```js\nawait clockodo.deleteUser({ id: 7 });\n```\n\n---\n\n### deleteSurchargeModel()\n\nDeletes a surcharge model by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteSurchargeModel({ id: 31 });\n```\n\n---\n\n### [deleteAbsence()](https://docs.clockodo.com/#tag/Absence/operation/deleteAbsenceByIdV4)\n\nDeletes absence (go figure).\n\n#### Example:\n\n```js\nawait clockodo.deleteAbsence({ id: 31 });\n```\n\n---\n\n### [deleteEntry()](https://docs.clockodo.com/#tag/Entry/operation/deleteEntryByIdV2)\n\nDeletes a single entry by ID\n\n#### Example:\n\n```js\nawait clockodo.deleteEntry({ id: 543512 });\n```\n\n---\n\n### [deleteLumpsumService()](https://docs.clockodo.com/#tag/LumpSumService/operation/deleteLumpSumServiceByIdV4)\n\nDeletes a lumpsum service by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteLumpsumService({ id: 94 });\n```\n\n---\n\n### [deleteTeam()](https://docs.clockodo.com/#tag/Team/operation/deleteTeamByIdV3)\n\nDeletes a team by ID\n\n#### Example:\n\n```js\nawait clockodo.deleteTeam({ id: 764 });\n```\n\n---\n\n### [deleteNonbusinessGroup()](https://docs.clockodo.com/#tag/NonbusinessGroup/operation/deleteNonbusinessGroupByIdV2)\n\nDeletes a nonbusiness group by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteNonbusinessGroup({ id: 31 });\n```\n\n---\n\n### [deleteNonbusinessDay()](https://docs.clockodo.com/#tag/NonbusinessDay/operation/deleteNonbusinessDayByIdV2)\n\nDeletes a nonbusiness day by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteNonbusinessDay({ id: 31 });\n```\n\n---\n\n### [deleteOvertimecarry()](https://docs.clockodo.com/#tag/OvertimeCarry/operation/deleteOvertimeCarryByIdV3)\n\nDeletes an overtime carry row by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteOvertimecarry({ id: 31 });\n```\n\n---\n\n### [deleteHolidaysQuota()](https://docs.clockodo.com/#tag/HolidayQuota/operation/deleteHolidaysQuotumByIdV2)\n\nDeletes a holidays quota row by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteHolidaysQuota({ id: 31 });\n```\n\n---\n\n### [deleteHolidaysCarryover()](https://docs.clockodo.com/#tag/HolidayCarryover/operation/deleteHolidaysCarryByIdV3)\n\nDeletes a holidays carryover row by ID.\n\n#### Example:\n\n```js\nawait clockodo.deleteHolidaysCarryover({ id: 31 });\n```\n\n---\n\n### [deleteEntryGroup()](https://docs.clockodo.com/#tag/EntryGroup/operation/deleteEntrygroupV2)\n\nDeletes one or more entries based on a series of filters that builds an \"entry group\".\n\n#### Example:\n\n```js\nawait clockodo.deleteEntryGroup({\n  timeSince: \"2017-08-18T00:00:00Z\",\n  timeUntil: \"2018-02-09T00:00:00Z\",\n  text: \"chilin everyday\",\n});\n```\n\n---\n\n### [withdrawWorkTimesChangeRequest()](https://docs.clockodo.com/#tag/WorkTime/operation/deleteWorkTimesChangeRequestByIdV2)\n\nWithdraws a work time change request by ID.\n\n#### Example:\n\n```js\nawait clockodo.withdrawWorkTimesChangeRequest({ id: 17 });\n```\n\n---\n\n### [register()](https://docs.clockodo.com/#tag/Register/operation/createRegister)\n\nCreates a new clockodo account.\n\n#### Example:\n\n```js\nawait clockodo.register({\n  companiesName: \"Acme Corporation\",\n  name: \"Road Runner\",\n  email: \"runner@acme.com\",\n});\n```\n\n---\n\n### [stopClock()](https://docs.clockodo.com/#tag/Clock/operation/deleteClockByIdV2)\n\nStops a running clock/entry.\n\n#### Example for self:\n\n```js\nawait clockodo.stopClock({ entriesId: 7082 });\n```\n\n#### Example for another user (needs requesting user to be owner):\n\n```js\nawait clockodo.stopClock({ entriesId: 7082, usersId: 123 });\n```\n\n---\n\n## Development\n\nTo run integration tests you need to create an `.env` by copying the `.env.example` and entering credentials of a dev-user, as you don't want to mess up your real clockodo data.\n\n## License\n\nMIT\n\n## Sponsors\n\n[\u003cimg src=\"https://assets.peerigon.com/peerigon/logo/peerigon-logo-flat-spinat.png\" width=\"150\" /\u003e](https://peerigon.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeerigon%2Fclockodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeerigon%2Fclockodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeerigon%2Fclockodo/lists"}