Integrate Harvest time tracking directly into your Obsidian.md workspace. Start, stop, and view your running timers without ever leaving your notes.
Settings -> Community plugins.Browse and search for "Harvest".Install.Enable it.main.js, manifest.json, and styles.css from the latest release.<YourVault>/.obsidian/plugins/.harvest.Settings -> Community plugins, find "Harvest", and enable it.Before you can use the plugin, you must configure your Harvest API credentials.
Get your credentials from Harvest:
Enter your credentials in Obsidian:
Settings -> Community Plugin Options -> Harvest.Access these commands through the command palette (Ctrl/Cmd + P):
You can render time tracking reports directly inside your notes using harvest code blocks. This uses a simple Harvest Query Language (HQL).
Create a code block with the language identifier harvest.
List report
To get a list of your time entries for a specific period:
```harvest
LIST TODAY
```
```harvest
LIST PAST 7 DAYS
```
Summary report
To get a summary of hours tracked per project for a specific period:
```harvest
SUMMARY WEEK
```
```harvest
SUMMARY FROM 2025-01-01 TO 2025-01-31
```
Query types:
LIST: Shows a detailed list of individual time entries.SUMMARY: Shows total hours and a breakdown by project.Time ranges:
TODAYWEEK (This week, Monday to Sunday)MONTH (This calendar month)PAST <number> DAYS (e.g., PAST 14 DAYS)FROM <YYYY-MM-DD> TO <YYYY-MM-DD>When you hover over a rendered report, a freeze button (❆) appears in the bottom-right corner. Clicking it replaces the dynamic harvest code block with a static markdown table, preserving the results as plain text in your note. This is useful for archiving a snapshot of your time data that won't change on future renders.
The status bar item at the bottom of your Obsidian window provides at-a-glance information:
Harvest: <Project Name> - <Task Name> (X:XX). This will update periodically based on your polling interval settings.| Setting | Description |
|---|---|
| Personal Access Token | Your unique token for accessing the Harvest API. |
| Account ID | The ID of your Harvest account. |
| Polling Interval | How often (in minutes) the plugin should check for a running timer to update the status bar. Default is 5. |
This project is licensed under the MIT License - see the LICENSE file for details.
Inspiration for this plugin comes from the Toggl Track plugin.