Strava Periodic Note Sync

pending

by James Jarvis

Sync Strava activities to your periodic notes.

Updated 2mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

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

  1. Download the latest release (main.js, manifest.json)
  2. Create folder: .obsidian/plugins/strava-daily-note-sync/
  3. Copy files into the folder
  4. Enable the plugin in Obsidian settings

BRAT (Beta Reviewers Auto-update Tester)

  1. Install the BRAT plugin
  2. Add this repository: jamesjarvis/obsidian-strava-periodic-sync
  3. Enable the plugin

Setup

  1. Create a Strava API application at https://www.strava.com/settings/api
  2. Set "Authorization Callback Domain" to localhost
  3. Enter your Client ID and Client Secret in the plugin settings
  4. Click "Open Strava Auth" to open the authorization page
  5. Authorize the application on Strava
  6. Copy the code parameter from the redirected URL (the localhost URL will fail to load - that's expected)
  7. 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:

FieldDescription
walking_distance_mWalk/Hike activities (metres)
running_distance_mRun activities (metres)
cycling_distance_mRide activities (metres)
swimming_distance_mSwim activities (metres)
active_timeTotal moving time (minutes)

Settings

SettingDescriptionDefault
Daily Notes FolderPath to daily notes folderAuto-detect
Section HeaderMarkdown header for activities#### Activities
Omit Empty SectionHide section when no activitiesfalse
Auto-Sync EnabledEnable background syncingtrue
Sync FrequencyHow often to auto-sync30 minutes
Historical Sync DaysBackfill previous days0

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.