Strava Periodic Note Sync
pendingby James Jarvis
Sync Strava activities to your periodic notes.
Obsidian Strava Periodic Sync
Sync your Strava activities to Obsidian daily notes with OAuth2 authentication.
Features
- OAuth2 authentication with Strava
- Auto-sync at configurable intervals (5/10/30/60 min)
- Activities section with emoji, pace/speed, distance, duration, elevation
- Frontmatter metrics (running_distance_m, cycling_distance_m, walking_distance_m, etc.)
- Historical backfill support (up to 90 days)
- Detects daily notes from Periodic Notes or Daily Notes plugin
- Secure credential storage using Obsidian's SecretStorage API
Installation
Manual Installation
- Download the latest release (
main.js,manifest.json) - Create folder:
.obsidian/plugins/strava-daily-note-sync/ - Copy files into the folder
- Enable the plugin in Obsidian settings
BRAT (Beta Reviewers Auto-update Tester)
- Install the BRAT plugin
- Add this repository:
jamesjarvis/obsidian-strava-periodic-sync - Enable the plugin
Setup
- Create a Strava API application at https://www.strava.com/settings/api
- Set "Authorization Callback Domain" to
localhost - Enter your Client ID and Client Secret in the plugin settings
- Click "Open Strava Auth" to open the authorization page
- Authorize the application on Strava
- Copy the
codeparameter from the redirected URL (the localhost URL will fail to load - that's expected) - Paste the code and click "Connect"
Daily Note Format
The plugin adds an Activities section to your daily notes:
#### Activities
- 🏃 **Morning Run** - 5.2 km in 28:15 (5:26 /km) | +45m elevation
- 🚴 **Evening Ride** - 22.4 km in 52:30 (25.6 km/h) | +180m elevation
Frontmatter Metrics
The plugin updates these frontmatter fields:
| Field | Description |
|---|---|
walking_distance_m | Walk/Hike activities (metres) |
running_distance_m | Run activities (metres) |
cycling_distance_m | Ride activities (metres) |
swimming_distance_m | Swim activities (metres) |
active_time | Total moving time (minutes) |
Settings
| Setting | Description | Default |
|---|---|---|
| Daily Notes Folder | Path to daily notes folder | Auto-detect |
| Section Header | Markdown header for activities | #### Activities |
| Omit Empty Section | Hide section when no activities | false |
| Auto-Sync Enabled | Enable background syncing | true |
| Sync Frequency | How often to auto-sync | 30 minutes |
| Historical Sync Days | Backfill previous days | 0 |
Development
Building from Source
npm install
npm run build
Running Tests
npm run test # Run tests once
npm run test:watch # Run tests in watch mode
Running Lints
npm run lint
License
MIT License - see LICENSE for details.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.