Marcos121 downloadsFetches the weekly Life and Ministry meeting programme from wol.jw.org and provides per-assignment countdown timers with visual states in a sidebar.
An Obsidian sidebar plugin that provides per-part stopwatches for JW congregation meetings. It automatically fetches the week's programme from wol.jw.org and builds a timer card for each part, so the meeting overseer or timekeeper can track every item with a single tap.
BRAT (Beta Reviewers Auto-update Tool) lets you install plugins directly from GitHub without waiting for them to be in the Obsidian community plugins directory.
https://github.com/MarckFp/jw-timer-obsidian
A timer sidebar will open automatically. A settings panel appears under Settings → JW Meeting Timer.
main.js, manifest.json, and styles.css from the latest release..obsidian/plugins/ and create a folder named jw-timer-sidebar.Ctrl/Cmd + P).Use the ◀ ▶ arrows in the nav bar to browse weeks. The Today button jumps back to the current week.
| Action | How |
|---|---|
| Start a part | Tap Play |
| Pause a part | Tap Pause |
| Reset a part | Tap Reset → Confirm? |
| Reset all | Tap Reset All → Confirm? |
| Edit / Delete / Move a part | Long-press a card → overlay menu |
| Add a custom stopwatch | Tap the + button in the toolbar |
Scroll to the bottom of the list to find the Share button:
Open Settings → JW Meeting Timer.
| Setting | Description |
|---|---|
| Language | WOL locale used to fetch and display the schedule. |
| Custom locale (advanced) | Enter any WOL locale path (e.g. r4/lp-s) to use a language not in the dropdown. |
| Meeting start time | Start time in 24-hour format, e.g. 20:00. |
| Opening song + prayer (min) | Minutes reserved before the first programme part (song + prayer). Default: 5. |
| Show advice timers | Show the 1-minute instructor advice sub-card below applicable parts. |
| Auto-start next part | When you pause a part, automatically start the next one in the same section. |
| Sound alert at overtime | Play a repeating beep when a part exceeds its allotted time. |
| Sound alert duration | How long the beep plays (seconds). |
| Vibration alert at overtime | Vibrate the device at overtime. Mobile only. |
| Vibration alert duration | How long the device vibrates (seconds). |
wol.jw.org/{locale}/wol/meetings/r*/lp-* for the current week.# Install dependencies
npm install
# Build (esbuild, watch mode)
npm run dev
# Production build
npm run build
# Type-check only
npx tsc --noEmit
Entry point: src/main.ts
Bundled output: main.js (loaded by Obsidian)
src/
├── main.ts Plugin entry point & data persistence
├── view.ts JwTimerView — the sidebar ItemView
├── scraper.ts wol.jw.org HTML parser
├── timer-engine.ts In-memory timer state machine
├── types.ts Shared TypeScript interfaces
├── settings-tab.ts Settings panel
└── ui/
├── locale.ts i18n strings (14 languages)
├── helpers.ts Pure utility functions & CardRefs interface
├── modals.ts EditPartModal, AddPartModal
├── card-renderer.ts renderCard / renderAdviceCard (CardController pattern)
└── exporter.ts Export-to-text (share / clipboard) logic