freshbooks-time-entry
Intervals → FreshBooks Time Entry Sync (SQLite)
Sync time entries from the local SQLite database to FreshBooks. Reads Intervals data from SQLite instead of browser automation.
Reading from: SQLite intervals_time_entries table via scripts/query-intervals.sh
Writing to: FreshBooks API via ../intervals-to-freshbooks/scripts/freshbooks-api.sh
Persisting: SQLite freshbooks_time_entries table via scripts/insert-freshbooks.sh
Mapping: .cache/om/intervals-cache/freshbooks-mappings.md
Prerequisites
- SQLite database at
$VAULT/.cache/om/time-entries.dbwithintervals_time_entriespopulated - FreshBooks API credentials in
~/.config/freshbooks/credentials.json - Chrome with
--remote-debugging-port=9222(for refreshing FreshBooks at the end)
$VAULT = /home/olivier/Code/github.com/olivoil/obsidian
$DB = $VAULT/.cache/om/time-entries.db
$SKILL = this skill's base directory
$FB_SKILL = $SKILL/../intervals-to-freshbooks
More from olivoil/skills
resolve-mappings
Use when you need to resolve project/repo/calendar/channel/FreshBooks mappings from the shared cache — loads mapping files, applies CONTAINS-match logic, learns new mappings
1session-rollup
Summarize recent work from Engram memory into an Obsidian coding note and link it from the daily note. Use when wrapping up a coding session or when asked to sync recent project work into the vault.
1pr-review
Use when asked to review a pull request, inspect a PR URL or number, review a local branch before opening a PR, post GitHub review comments, or give code-review feedback on changed files.
1weekly-rollup
Generate a weekly summary from daily notes — time totals, meeting highlights, coding sessions, key decisions, and todo progress. Use when asked for a weekly summary from daily notes, meetings, and todos.
1topic-pulse
Research recently active topics from the vault and deepen topic notes with concept documentation, subtopic exploration, and selective fresh context. Use when you want Topics notes expanded from recent vault activity.
1write-vault-section
Use when you need to append or replace a named section in an Obsidian note — handles idempotency, section positioning, Obsidian CLI with filesystem fallback
1