Skip to main content

timebutler_client

Async Python client for the Timebutler API (official docs).

License: MIT Python Versions (officially) supported Pypi status badge Unittests status badge Coverage status badge Linting status badge Formatting status badge

Installation

pip install timebutler-client

Usage

from timebutler_client import TimebutlerClient

# Create client with your API key
client = TimebutlerClient(api_key="your-api-key")

# Fetch absences for a specific year
absences = await client.get_absences(year=2026)

for absence in absences:
    print(f"{absence.employee_number}: {absence.from_date} - {absence.to_date} ({absence.absence_type})")

Features

  • Async HTTP client using aiohttp
  • Typed responses using Pydantic models
  • Strict date parsing (European dd/mm/yyyy format)
  • Employee number handling with leading zeros preserved

Supported Endpoints

Method Description
get_absences(year) Fetch absences for a given year
get_projects() Fetch all projects
get_services() Fetch all services
get_users() Fetch all users
get_workdays() Fetch workday schedules for all users (see note below)
get_worktime(year?, month?, user_id?) Fetch worktime entries with optional filters

Example: Tracking Time by Project

from timebutler_client import TimebutlerClient

client = TimebutlerClient(api_key="your-api-key")

# Get all projects and worktime entries
projects = await client.get_projects()
worktime = await client.get_worktime(year=2026, month=1)

# Build a project name lookup
project_names = {p.id: p.name_stripped for p in projects}

# Sum hours by project
for entry in worktime:
    if entry.has_project:
        project_name = project_names.get(entry.project_id, "Unknown")
        print(f"{entry.date}: {entry.duration} on {project_name}")

Development

This project is based on the Hochfrequenz Python Template Repository. Refer to that repository for detailed setup instructions including tox configuration and IDE setup.

Quick Start

# Create dev environment
tox -e dev

# Run tests
tox -e tests

# Run linting
tox -e linting

# Run type checking
tox -e type_check

License

MIT

Metadata

Release files for timebutler-client 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for timebutler-client 0.0.4
File Size Uploaded Provenance
timebutler_client-0.0.4.tar.gz 21.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for timebutler-client 0.0.4
File Interpreter ABI Platform
timebutler_client-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 38.4 kB

Release files / timebutler_client-0.0.4.tar.gz

Download URL timebutler_client-0.0.4.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4f5400fded1e9f46f4211929ac8fac75a740e35cc6d791046e854eb524c4036a
BLAKE2b-256 checksum
How to use checksums
42157fcfb2a03a8badf93ec6e4906eabf46836912b3454197d00b0235f935027
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Release files / timebutler_client-0.0.4-py3-none-any.whl

Download URL timebutler_client-0.0.4-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1ba2ab1013eb762054affa18716dace95d425ed0f1c729cd0bae28e8759371a
BLAKE2b-256 checksum
How to use checksums
f842419cc6865d8d98e223c21dde631ea1adefc13fce16d4a75533a7b25889db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Security for timebutler-client 0.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for timebutler_client-0.0.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page