Incident.io Periodic Note Sync

pending

by James Jarvis

Sync on-call status and active incidents from incident.io to your periodic notes.

Updated 2mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Obsidian Incident.io Periodic Sync

Sync on-call status and incidents from incident.io to Obsidian daily notes.

Features

  • On-call schedule status in daily notes
  • Active incidents you're leading or assigned to
  • Individual incident note files with full details:
    • Summary, overview table, timestamps
    • Roles and custom fields
    • Full timeline with status/severity changes
    • Actions and follow-ups with checkboxes
    • Attachments (GitHub PRs, Datadog dashboards, etc.)
  • Auto-sync at configurable intervals (1/5/10/30/60 min)
  • Historical backfill support (up to 90 days)
  • Wikilinks from daily notes to incident files
  • Secure API key storage using Obsidian's SecretStorage API

Installation

Manual Installation

  1. Download the latest release (main.js, manifest.json, styles.css)
  2. Create folder: .obsidian/plugins/incident-io-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-incident-io-periodic-sync
  3. Enable the plugin

Setup

  1. Get your API key from incident.io settings
  2. Enter the API key in the plugin settings
  3. Enter your user identifier (email substring or name to match your user)
  4. Click "Test Connection" to verify

Daily Note Format

The plugin adds an Incidents section to your daily notes:

## Incidents

### On-Call
- On-call for: Primary, Secondary

### Active Incidents
- [[Incidents/INC-123|INC-123: Database outage]]

Incident Note Format

Creates individual files like Incidents/INC-123.md with:

  • YAML frontmatter (id, reference, status, severity, dates)
  • Overview table (status, severity, lead, created, resolved)
  • Timestamps (detected, acknowledged, mitigated, resolved)
  • Roles and custom fields
  • Full timeline of updates
  • Actions with completion checkboxes
  • Follow-ups with completion status
  • Attachments as links

Settings

SettingDescriptionDefault
API KeyYour incident.io API key-
User IdentifierEmail/name substring to match your user-
Section HeaderMarkdown header for incidents## Incidents
Incident Notes FolderWhere to create incident filesIncidents
Show On-Call StatusInclude on-call status sectiontrue
Show IncidentsInclude incidents sectiontrue
Omit Empty SectionsHide sections when emptyfalse
Auto-Sync EnabledEnable background syncingtrue
Sync FrequencyHow often to auto-sync5 minutes
Historical Sync DaysSync incidents from past N days0
Update Previous Daily NotesBackfill historical daily notesfalse

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.