Skip to main content

toggl2jira

CLI application to replicate toggl time entries to Jira worklogs

Install

  1. Install toggl2jira from pypi
# we recommend pipx to install
pipx install toggl2jira

# otherwise you can install with pip in a virtual environment. YMMV
python3 -m .venv
source .venv/bin/activate
pip install toggl2jira
  1. Configure application (see below)
  2. (optional) Setup a regular task to fully automatic sync your tasks

Usage

Start each Toggl entry with a Jira issue reference followed by a slash to enable worklog sync for this time entry.

Example:

MYPROJECT-1337/This text will also be synced to Jira

Just run the sync script to sync all time entries within the configured sync window. This action is idempotent and can be executed multiple times without problems.

Configuration

Configure by setting environment variables or creating a toggl2jira.env file in of the following locations. See .env.example for a template.

  • Current working directory
  • ~/.config
  • Location of the script
Config Default Description
JIRA_URL required Base URL to your Jira Server Instance (e.g. https://jira.example)
JIRA_ACCESS_TOKEN required Jira personal access token. See Jira Docs
JIRA_PROJECT_SLUG required Jira project slug that is considered for sync
TOGGL_URL "https://api.track.toggl.com" Toggl API base URL
TOGGL_API_KEY required Toggl API key. See Toggl Docs
SYNC_WINDOW_SIZE 1 Amount of days, the sync will look in the past

Setup Examples

launchd (MacOS)

  1. Create LaunchAgent config
<!-- /Users/###user###/Library/LaunchAgents/com.github.schlakob.toggl-jira-sync.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.github.schlakob.toggl-jira-sync</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/<<user>>/.local/pipx/venvs/toggl2jira/bin/python</string>
      <string>/Users/<<user>>/.local/bin/toggl2jira</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
    <key>StandardOutPath</key>
    <string>/path/to/code/toggl-jira-sync/out.log</string>
    <key>StandardErrorPath</key>
    <string>/path/to/code/toggl-jira-sync/err.log</string>
</dict>
</plist>
  1. Enable and start LaunchAgent
launchctl bootstrap gui/$(id -u) /Users/<<user>>/Library/LaunchAgents/com.github.schlakob.toggl-jira-sync.plist
launchctl kickstart -k gui/$(id -u)/com.github.schlakob.toggl-jira-sync

Metadata

Release files for toggl2jira 2.0.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 toggl2jira 2.0.0
File Size Uploaded
toggl2jira-2.0.0.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for toggl2jira 2.0.0
File Interpreter ABI Platform
toggl2jira-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.9 kB

Release files / toggl2jira-2.0.0.tar.gz

Download URL toggl2jira-2.0.0.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
96d781972f4d141efb01070ed3d371be0a8955d65d8bc34e9e9f9d5e917bfca4
BLAKE2b-256 checksum
How to use checksums
c602d31b2f281ff9ff420aeeff58e5f8edc1a24e868c25cab9aff41bb2334e7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Sep 25, 2025.

Transparency log

Release files / toggl2jira-2.0.0-py3-none-any.whl

Download URL toggl2jira-2.0.0-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e710cb4c7d1cd6ff36d6ffd41aa9149f021e5160d61558e79baa894756c9bca9
BLAKE2b-256 checksum
How to use checksums
24cf95cb0002b1de8507d558de5109ce12be4f92dd179979cc3bf956b1fc83ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Sep 25, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.0

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