Meeting Note Importer

by Pierre Awaragi
5
4
3
2
1
New Plugin

Description

Import meeting notes from calendar invites — drop a .ics file or drag a meeting directly from Outlook. - This plugin has not been manually reviewed by Obsidian staff.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Meeting Note Importer

An Obsidian plugin that creates structured meeting notes from calendar invites — drop a .ics file, drag a meeting directly from Outlook, or enter meeting details manually.

Features

  • Drag and drop a .ics file from Finder, Explorer, or any file manager
  • Drag a meeting directly from Outlook for Mac — no file export needed
  • Click to browse for a .ics file via the file picker
  • Quick/manual entry — create a note by typing a title and picking a date and time, no file needed
  • Populates title, date, attendees, organizer, location, meeting URL, and description automatically
  • Skips duplicate notes — if a note for that meeting already exists it is returned without overwriting
  • Supports a custom Obsidian template with {{date}} and {{title}} placeholders
  • Configurable note name template with {{date}}, {{title}}, {{startTime}}, {{endTime}}, and {{organizer}} placeholders
  • Override current note — when a file is open, optionally write the meeting content into that file instead of creating a new one; a secondary toggle also renames the file to match the meeting
  • Configurable target folder and heading names for attendees and notes sections
  • Localised UI in English, French, and Spanish — automatically follows Obsidian's language setting

Note: This plugin is designed for desktop use. Drag-and-drop and direct Outlook integration rely on desktop APIs. Mobile behaviour is untested.

Usage

From a calendar file

Click the calendar icon in the ribbon, or run the command Create meeting note from file, then:

  • Drag a .ics file into the drop zone, or
  • Drag a meeting event directly from Outlook for Mac, or
  • Click the drop zone to browse for a .ics file

Quick/manual entry

Run the command New quick meeting note (or assign it a hotkey in Settings → Hotkeys) to open the modal directly on the Quick/Manual Entry tab. Enter a title, adjust the date and times if needed, and press Create (or hit Enter in the title field).

  • Date defaults to today
  • Start time defaults to the current time rounded to the nearest time increment
  • End time defaults to start + one increment

The plugin creates a note in the configured folder and opens it immediately.

Default note structure

---
title: "2024-06-15 - Team Sync"
date: "2024-06-15"
tags:
  - meeting
---
# 2024-06-15 - Team Sync

## Attendees
- Jane Smith (Organizer)
- John Doe

## Notes
> https://teams.microsoft.com/meet/...

## Summary

## Action Items

- [ ]

Settings

Setting Default Description
Show ribbon icon On Show the calendar icon in the ribbon bar. Change takes effect after reloading Obsidian.
Save in active folder On Save the note in the folder of the currently open file
Fallback notes folder (vault root) Folder used when active-folder is off, or no file is open
Template file (built-in) Path to a custom Obsidian template
Note name template {{date}} - {{title}} Filename template — supports {{date}}, {{title}}, {{startTime}}, {{endTime}}, {{organizer}}
Attendees heading ## Attendees Heading under which attendees are injected
Notes heading ## Invite Notes Heading under which the meeting URL and description are injected
Open note after creation On Automatically open the note after it is created
Rename note by default when overriding Off Pre-enable the rename toggle when the override toggle is turned on
Time increment 30 min Step size used for quick-entry time defaults and start-time rounding (15, 30, or 60 min)

Localisation

The plugin UI is available in English (default), French, and Spanish. The language is detected automatically from Obsidian's language setting (via the built-in moment.js locale).

To add a new language:

  1. Copy src/ts/i18n/en.json to src/ts/i18n/<code>.json (e.g. de.json)
  2. Translate all values — keys must stay identical to en.json
  3. Import and register it in src/ts/i18n.ts:
    import de from "./i18n/de.json";
    const locales = { en, fr, es, de };
    
  4. Rebuild with npm run build

Installation

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Copy them into your vault at .obsidian/plugins/meeting-note-importer/
  3. Enable the plugin in Settings → Community plugins

Development

# Install dependencies
npm install

# Copy .env.example and set your vault plugin path
cp .env.example .env

# Development build (with sourcemaps)
npm run dev

# Production build
npm run build

# Copy dist/ to your local vault (reads OBSIDIAN_PLUGIN_DIR from .env)
npm run deploy

# Development build + deploy in one step
npm run dev:deploy

# Remove dist/
npm run clean

Testing

# Run all unit tests
npm test

# Integration test — parse a real .ics file and print the generated note
TEST_ICS_FILE=/path/to/invite.ics npm test

# Integration test — parse Outlook meeting text saved to a file
TEST_OUTLOOK_FILE=/path/to/invite.txt npm test

The integration tests are skipped automatically when the env vars are not set, so npm test always works without any fixtures.

To get a .ics file from Outlook for Mac: right-click a calendar event → Export…, or drag the event from Calendar.app to Finder.

Releases

  1. Prepare the version bump — choose patch, minor, or major:

    npm run release:prepare patch
    

    This updates package.json and manifest.json. Commit the result:

    git add package.json manifest.json
    git commit -m "chore: bump version to X.Y.Z"
    

    Or do both in one step with the --commit flag:

    npm run release:prepare -- patch --commit
    
  2. Publish — pushes the branch, tags the commit, and pushes the tag:

    npm run release
    

    GitHub Actions picks up the tag, builds the plugin, runs tests, and creates a release containing main.js, manifest.json, and styles.css as flat assets ready for manual installation.