A PowerShell WPF desktop application for tracking time spent on tasks with running timers, daily/weekly summaries, and timesheet export. Built for Windows -- a personal Toggl that runs natively without browser dependencies.
Timer Engine
- One-click start/stop/pause/resume with live HH:MM:SS display
- Only one timer runs at a time -- starting a new task automatically stops the previous one
- Manual time entry for retroactively logging work
- Precise duration tracking with pause accumulation
Task Organization
- Tasks organized by Client, Project, and Category
- Tag support for flexible cross-cutting labels
- Billable vs. non-billable tracking per entry
- Favorite and recent task quick-access (last 25 tasks remembered)
- Recurring tasks auto-populated by day of week
Reporting
- Daily timesheet with per-task breakdown
- Weekly summary with day-by-day columns
- Monthly totals with utilization percentage
- Breakdown views: by client, by project, by category
- Billing estimates using configurable hourly rates per client
Export
- CSV export for timesheet system import (standard or grouped format)
- Excel export with formatted sheets and optional invoice summary
- Clipboard export (tab-delimited) for pasting into spreadsheets or time systems
- Weekly and monthly report generation
Idle Detection
- Detects user inactivity via Win32
GetLastInputInfo - Configurable idle threshold (default: 5 minutes)
- When you come back, prompts: "You were idle for X minutes. What were you doing?"
- Options: add idle time to the last task, create a new entry, or discard
Daily Targets
- Configurable target hours per day and per week
- Progress bar showing tracked vs. target
- Separate billable target tracking
- Utilization calculation (tracked / target)
UI
- Dark mode WPF interface
- Timer bar at top with current task, elapsed time, and control buttons
- Quick task selector with recent/favorite task buttons
- Entry list with double-click to edit or delete
- Right panel: daily progress, billable summary, project breakdown
- Mini calendar showing which days have entries
- System tray integration (minimize to tray, tray context menu)
- Keyboard shortcuts: Ctrl+Space (start/stop), Ctrl+N (new task), Ctrl+M (manual entry)
- Freelancers: Track billable hours per client, generate invoice data at month-end
- Consultants: Log time across multiple projects, export weekly timesheets
- Employees: Meet daily hour targets, paste time into corporate timesheet systems
- Anyone: Understand where your time actually goes during the work day
- Double-click
START.vbsto launch (or runUI.ps1directly in PowerShell) - Type a task name, select a project, and click Start
- When done, click Stop -- the entry saves automatically
- Use the right panel to monitor your daily progress
Edit config.json to set up:
- clients -- Name, hourly rate, billable flag
- projects -- Name, associated client, display color
- categories -- Activity types (Development, Meetings, Admin, etc.)
- recurringTasks -- Tasks that auto-appear on specific days of the week
- targets -- Daily/weekly hour goals, billable hour target
- idleDetection -- Enable/disable, idle threshold in minutes
- export -- CSV delimiter, date/time format, rounding
| Format | Description | Use Case |
|---|---|---|
| CSV (standard) | One row per entry with all fields | Import into time tracking systems |
| CSV (grouped) | Entries grouped by date + task, hours summed | Simplified timesheet submission |
| Excel | Formatted workbook with detail + invoice sheets | Client billing, manager review |
| Clipboard | Tab-delimited text | Paste into any spreadsheet or web form |
Time entries are stored as JSON files in the data/ folder, one file per date (YYYY-MM-DD.json). This makes entries easy to back up, sync, or inspect manually.
- Windows 10/11
- PowerShell 5.1 or later
- .NET Framework 4.5+ (included with Windows)
- Excel COM automation (optional, for Excel export -- requires Microsoft Excel installed)