Skip to main content

toggl-to-sqlite

PyPI GitHub changelog Tests License Python Code style: ruff pre-commit.ci status

Save data from Toggl to a SQLite database using the modern Toggl API v9.

Features

  • ✅ Toggl API v9 - Uses the latest Toggl API for maximum compatibility
  • ✅ Complete Data Export - Time entries, workspaces, and projects
  • ✅ Flexible Date Ranges - Fetch all data or specify custom date ranges
  • ✅ SQLite Storage - Portable, queryable database format
  • ✅ 100% Test Coverage - Reliable and well-tested codebase
  • ✅ Modern Python - Supports Python 3.9+
  • ✅ Modern Tooling - Built with uv, ruff, and automated versioning

How to install

With uv (recommended)

$ uv add toggl-to-sqlite

With pip

$ pip install toggl-to-sqlite

Usage

You will need to first obtain a valid API token for your toggl account. You can do this by running the auth command and following the prompts:

$ toggl-to-sqlite auth
You will need to get your API Token from this page

https://track.toggl.com/profile

Once you have your API Token enter it at the command line.

Authentication tokens written to auth.json

Now you can fetch all of your items from toggl like this:

$ toggl-to-sqlite fetch toggl.db

NB! By default toggl-to-sqlite only fetches data from the 25 previous days. As an alternative you can specify to get time_entries since a specific date. You do this by specifying the since option:

$ toggl-to-sqlite fetch -s 2021-03-13

You can choose to get only time_entries, projects, or workspaces by speciying a type in the argument like this.

To get ONLY your workspaces:

$ toggl-to-sqlite fetch -t workspaces toggl.db

To get your workspaces and projects:

$ toggl-to-sqlite fetch -t workspaces -t projects toggl.db

The default is to get all three of time_entries, projects, and workspaces

toggl-to-sqlite --help

Usage: toggl-to-sqlite [OPTIONS] COMMAND [ARGS]...

  Save Toggl data to a SQLite database

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  auth   Save authentication credentials to a JSON file
  fetch  Save Toggl data to a SQLite database

Using with Datasette

The SQLite database produced by this tool is designed to be browsed using Datasette. Use the datasette-render-timestamps plugin to improve the display of the timestamp values.

Development

This project uses modern Python tooling for development.

Prerequisites

  • Python 3.9+
  • uv (recommended) or pip

Setup with uv (recommended)

git clone https://github.com/ryancheley/toggl-to-sqlite
cd toggl-to-sqlite
uv sync --extra test

Setup with pip

git clone https://github.com/ryancheley/toggl-to-sqlite
cd toggl-to-sqlite
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[test]"

Running tests

# With uv
uv run pytest

# With pip
pytest

Code quality

This project uses ruff for linting and formatting:

# With uv
uv run ruff check .          # Linting
uv run ruff format .         # Formatting

# With pip
ruff check .
ruff format .

Version management

Versions are automatically managed using git tags:

# Create a new version
git tag v0.9.0
git push origin v0.9.0

# Or use the bump script
python bump-version.py patch  # 0.8.2 -> 0.8.3
python bump-version.py minor  # 0.8.2 -> 0.9.0
python bump-version.py major  # 0.8.2 -> 1.0.0

See CONTRIBUTING.md for more information on contributing to this project.

Requirements

  • Python 3.9 or higher
  • Valid Toggl account with API access

Metadata

Release files for toggl-to-sqlite 0.9.0

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

Source distribution (sdist)

Source distribution for toggl-to-sqlite 0.9.0
File Size Uploaded
toggl_to_sqlite-0.9.0.tar.gz 58.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for toggl-to-sqlite 0.9.0
File Interpreter ABI Platform
toggl_to_sqlite-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 69.8 kB

Release files / toggl_to_sqlite-0.9.0.tar.gz

Download URL toggl_to_sqlite-0.9.0.tar.gz
Size 58.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cc51b1b3f5bb25d17a4ff10ab63ee15679bdc74192900f5637beec66d7a40ba5
BLAKE2b-256 checksum
How to use checksums
bfbaecdec02986f9d1200ed6789e3ad857564917b6153ac95666181a4928e6f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jun 15, 2025.

Transparency log

Release files / toggl_to_sqlite-0.9.0-py3-none-any.whl

Download URL toggl_to_sqlite-0.9.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c2b72cae89f10136d6b761f783884b730fc224eb8aa89a01f29d526589a8d91
BLAKE2b-256 checksum
How to use checksums
18a62b364660257c7979414b739c832e827fbbc44aaaa41259a45190555af91b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jun 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

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