Pierre Awaragi199 downloadsImport meeting notes from calendar invites — drop a .ics file or drag a meeting directly from Outlook.
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.
.ics file from Finder, Explorer, or any file manager.ics file via the file picker{{date}} and {{title}} placeholders{{date}}, {{title}}, {{startTime}}, {{endTime}}, and {{organizer}} placeholdersNote: This plugin is designed for desktop use. Drag-and-drop and direct Outlook integration rely on desktop APIs. Mobile behaviour is untested.
Click the calendar icon in the ribbon, or run the command Create meeting note from file, then:
.ics file into the drop zone, or.ics fileRun 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).
The plugin creates a note in the configured folder and opens it immediately.
---
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
- [ ]
| 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) |
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:
src/ts/i18n/en.json to src/ts/i18n/<code>.json (e.g. de.json)en.jsonsrc/ts/i18n.ts:import de from "./i18n/de.json";
const locales = { en, fr, es, de };
npm run buildmain.js, manifest.json, and styles.css from the latest release.obsidian/plugins/meeting-note-importer/# 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
# 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.
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
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.