nathanstorm6891k downloadsCreate notes from Outlook .msg files — supports meetings, appointments, and recurring events.
An Obsidian plugin that creates notes from Microsoft Outlook meetings, appointments, and recurring events by dragging and dropping Outlook .msg files or exported .ics files onto a ribbon icon.


Based on Outlook Meeting Notes by David Ingerslev. This fork adds support for recurring events, opening existing notes, and other improvements.
.msg and .ics files locallySearch for Outlook Event Notes in Obsidian → Settings → Community Plugins.
main.js, manifest.json, and styles.css from the latest release.obsidian/plugins/outlook-event-notes/Drag and drop a meeting or appointment from the Outlook Classic desktop calendar onto the plugin ribbon icon. The plugin will:
.msg fileYou can also save a calendar appointment or meeting as a .msg or .ics file and drop it onto the icon. A .msg email or invitation message is not a calendar appointment; open the event in your calendar before saving it. Import one file containing one event at a time.
For recurring .msg files, the plugin first looks for the occurrence date in the file and the drag text. If neither provides a usable date, a dialog suggests the nearest valid occurrence from the recurrence pattern. Confirm or correct that date, or cancel to stop importing.
A recurring .ics series without an explicit occurrence asks you to enter the date. Unsupported recurrence patterns, including Hijri patterns, can also require manual date selection. Always use the date shown in your calendar.
The settings page includes the installed version, author, compatibility details, documentation and support links, and a Buy me a coffee button. Your existing settings are kept when you update.
The folder where new notes are created. Created automatically if it does not exist (supports subfolders like Meetings/2026).
Uses Mustache syntax. Default:
{{#helper_dateFormat}}{{apptStartWhole}}|YYYY-MM-DD_HH-mm-ss{{/helper_dateFormat}} {{subject}}
Produces filenames like 2026-07-30_18-20-05 Réunion d'équipe.
Use Folder location to choose subfolders. Slashes in the filename pattern are treated as invalid filename characters.
Characters that are invalid in filenames (/ * " \ < > : | ?) are replaced with this value. Blank = remove them.
Fully customisable Mustache template. All .msg fields are available, plus the helper fields and functions below.
Imported values in YAML properties are quoted and escaped automatically, preserving punctuation, leading blank lines, and multiline invitation text. Existing notes are opened without being rewritten; this update does not repair older notes automatically.
---
title: {{subject}}
subtitle: meeting notes
created: {{#helper_dateFormat}}{{apptStartWhole}}|YYYY-MM-DD_HH-mm-ss{{/helper_dateFormat}}
meeting: 'true'
meeting-location: {{apptLocation}}
meeting-recipients:
{{#recipients}}
- {{name}}
{{/recipients}}
meeting-invite: {{body}}
---
| Field | Description |
|---|---|
{{helper_currentDT}} |
Date/time the file was dropped, in ISO format (e.g. 2026-03-11T19:00:00-05:00) |
Use helper_dateFormat to reformat it:
{{#helper_dateFormat}}{{helper_currentDT}}|YYYY-MM-DD_HH-mm-ss{{/helper_dateFormat}}
helper_dateFormatFormats a date using moment.js. Separate the field and format with |.
{{#helper_dateFormat}}{{apptStartWhole}}|YYYY-MM-DD_HH-mm-ss{{/helper_dateFormat}}
produces 2026-03-11_19-00-00
{{#helper_dateFormat}}{{apptStartWhole}}|L LT{{/helper_dateFormat}}
Uses Obsidian's display language locale (e.g. 11/03/2026 19:00 in English GB, 03/11/2026 7:00 PM in English US).
helper_firstWordReturns only the first word of a field — useful for recording first names only:
meeting-recipients:
{{#recipients}}
- {{#helper_firstWord}}{{name}}{{/helper_firstWord}}
{{/recipients}}
.msg file parsingSee THIRD_PARTY_NOTICES.txt for additional library notices.
0BSD — see LICENSE.