jabaho95231k downloadsSubscribe to calendars and create pre-filled meeting notes in one click. No drag-and-drop, no Outlook required. ICS-based, privacy-first
Subscribe to your calendar, click a meeting, get a pre-filled note. No drag-and-drop, no Outlook open in the background, no export. Your calendar sits next to your notes, and every event is one click from a ready-to-type meeting note in your own vault.

Subscribe to a calendar. Paste an ICS link from Outlook, Google, iCloud, Proton, or Fastmail. No new account, no migration.
Today's meetings appear in the sidebar, sorted by time — with a marker on the ones that already have notes.

Click a meeting → a pre-filled note opens in your chosen folder, with attendees, time, location, and agenda already filled in. Start typing.

That's the whole loop. Everything below is detail.
You ran meetings out of Notion, but you always wanted your calendar and your notes in the same place — without exporting to a separate calendar app, and without your meeting history living on someone else's server.
Meetings Plus subscribes to the calendar you already use (Outlook, Google, iCloud, and any standards-compliant ICS feed) and turns any event into a structured note in your own local markdown vault with one click. Attendees come in as [[wikilinks]], so every meeting connects to the people and projects it touches — the relations muscle you had in Notion, now as plain-text links you own. No telemetry, no third-party services, no lock-in.
<% %> tokens run after Meetings Plus substitutes its own {{variables}}The existing Outlook Meeting Notes plugin requires Outlook and Obsidian to be open simultaneously, and you drag calendar events between them. That's fragile and slow. Meetings Plus reads your calendar directly via ICS, so Outlook doesn't need to be open and nothing needs to be dragged — your meetings are just there in the sidebar, on desktop and mobile alike.
main.js, manifest.json, and styles.css from the latest release.obsidian/plugins/meetings-plus/Outlook / Microsoft 365
Google Calendar
iCloud
Proton Calendar
Meetings Plus also supports HTTP Basic auth:
https://user:pass@host/cal.ics
Each calendar has its own editable template. Variables are written as {{name}}; date variables accept a moment.js format string after a colon, e.g. {{start:HH:mm}}.
| Variable | Output |
|---|---|
{{title}} |
Meeting title |
{{date}} |
Meeting date in YYYY-MM-DD |
{{start}}, {{start:HH:mm}} |
Start datetime |
{{end}}, {{end:HH:mm}} |
End datetime |
{{duration}} |
Duration in minutes |
{{location}} |
Location string |
{{meeting_url}} |
First detected meeting URL |
{{description}} |
Full description, stripped of HTML |
{{organizer}} |
Organizer name |
{{attendees}} |
Comma-separated attendee names |
{{attendees_list}} |
Bulleted list of attendees |
{{attendees_wikilinks}} |
Comma-separated [[Name]] wikilinks |
{{calendar}} |
Calendar display name |
{{uid}} |
ICS UID |
{{dedup_key}} |
Internal dedup key (used in frontmatter) |
{{tags}} |
Calendar's tags as YAML list |
Templater compatibility: keep your <% tp.* %> tokens in the template. Meetings Plus does its {{ }} substitution first; Templater runs second if you enable "Run Templater on new notes".
Global options:
Per-calendar options live in the calendar editor and cover URL, color, folder, title pattern, tags, template, and which features (standalone notes, daily-note append, all-day filtering) apply.

requestUrl (so it works on mobile and bypasses CORS)meeting_dedup_key in frontmatter) so re-clicking a meeting opens the existing note instead of creating a duplicateEverything is local and offline except the ICS fetches themselves. There are no third-party services, no analytics, no telemetry.
Meetings Plus only talks to the calendar URLs you configure. It does not collect, log, or transmit calendar contents, attendee names, meeting titles, or fetch URLs anywhere else. There is no analytics layer.
Background refresh runs at your configured interval (default 15 min); on each refresh, all calendars fetch in parallel. Parsed meetings are cached per calendar so reloads are instant. Pre-meeting setTimeouts are cancelled and re-scheduled on every refresh so the schedule stays current.
Meetings Plus is part of the Plus Plugin Family for Obsidian:
If Meetings Plus saves you time, you can support development here:
0BSD — copy, paste, ship. Less drag-and-drop, more note-taking.