Skip to content

Repository files navigation

Timesheet Nag

Checks Tempo (Jira) for last week's logged hours and shows a popup dialog every 5 minutes until your timesheet is filled and submitted.

Dialog window

Setup

  1. Create a virtual environment and install dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

On Ubuntu, install tkinter if not already present:

sudo apt install python3-tk
  1. Create your config file with your Tempo API token and Jira account ID:
echo 'YOUR_TEMPO_TOKEN' > ~/.tempo_token
echo 'YOUR_ACCOUNT_ID' >> ~/.tempo_token
chmod 600 ~/.tempo_token   # Linux/macOS only
  1. Test it works:
python timesheet_nag.py --dry-run

Install as scheduled task

Each platform has its own installer that schedules the script to run every Monday at 9:00 AM.

Linux (systemd)

./install_linux.sh
systemctl --user status timesheet-nag.timer

macOS (launchd)

./install_macos.sh
launchctl list | grep timesheet

Windows (Task Scheduler)

install_windows.bat
schtasks /query /tn "TimesheetNag"

Note: The scheduled task fires once on Monday at 9:00 AM and the Python process loops every 5 minutes until the timesheet is complete. If the machine reboots during the day, the task will not re-trigger until the following Monday. You can manually re-run python timesheet_nag.py if needed.

Uninstall

Linux

./uninstall.sh

macOS

./uninstall_macos.sh

Windows

uninstall_windows.bat

Usage

python timesheet_nag.py                  # check last week (default)
python timesheet_nag.py --week current   # check current week
python timesheet_nag.py --dry-run        # preview without API calls

Tests

python -m pytest test_timesheet_nag.py -v

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages