Event Linked Notes¶
Feature Overview
Take rich, local markdown notes for all your remote calendar events! Event Linked Notes allow you to connect a dedicated, local markdown note inside Obsidian to any event from your remote calendars (such as Google Calendar, CalDAV, ICS, or Outlook). Organize meeting agendas, track action items, and store private references—all while keeping your external calendars cleanly synchronized.
How It Works: The User Workflow¶
When you click on a remote calendar event in Obsidian, the event details modal opens.
- Open Note: Click the Open Note button in the top-right corner of the event modal. If no linked note exists yet, one will be created automatically in your configured directory.
- Automated Templating: The new note is populated with rich event details (date, time, location, description, calendar name) according to your template.
- Instant Access: On subsequent clicks, the same note is opened according to your selected link strategy. Name-based mode checks the exact title path first; deadline-based mode uses event and occurrence identity.
Handling Recurring Events¶
The Linked note link strategy setting controls how recurring remote events and rescheduled task instances use notes:
- Deadline-based is the compatibility default. Each occurrence gets an instance-specific note.
- Name-based first checks for an exact title-matched file in the configured linked-notes folder. It opens that file when present, or creates it without a suffix when absent. Moving a task deadline or opening another occurrence continues to use the same note.
When name mode reuses an existing title-matched file, it adds or updates only the calendar ID and event UID properties; the existing body and unrelated properties remain unchanged. These stable frontmatter IDs preserve lookup after the note is later renamed or moved.
Name-based matching is folder-specific and exact after filename sanitization. For example, an event titled Project / Launch matches Project Launch.md inside the configured linked-notes folder. It does not search other folders or add collision suffixes such as -_-_-1.
In deadline-based mode:
- Collision-Free Filenames: Newly generated notes automatically append the occurrence date directly to the filename to avoid vault conflicts in your notes folder (e.g.,
Weekly Sync 2026-05-20.md). - Instance Frontmatter Identity: The note's YAML frontmatter includes an additional field
fc-event-recurrence-idspecifying the exact date of that occurrence:fc-event-uid: 0q5u45oijpqnkljsndpfoiash98 fc-calendar-id: google-calendar-work fc-event-recurrence-id: "2026-05-20" - Smart Template Substitution: The
{{date}}placeholder in your note body template automatically resolves to the specific instance's date (e.g.Wednesday, May 20, 2026) instead of the series start date.
Configuration Settings¶
Go to Settings → Calendars to set up the default behavior. The Linked Note Settings section appears at the top of the Calendars tab.
1️⃣ Linked Notes Directory¶
Choose the folder inside your Obsidian vault where all newly created event notes will be stored (e.g., Meetings or Inbox/Calendar). Use the folder dropdown to select an existing folder. If the folder does not exist, it will be automatically created upon the first note generation.
2️⃣ Linked Note Link Strategy¶
Choose Name-based when a project, recurring series, or rescheduled task should keep one shared note. Exact matching uses the sanitized event title inside the configured linked-notes folder, so events with the same title intentionally share that note. Choose Deadline-based when every dated occurrence needs its own note. Changing this setting affects future lookup and creation; it does not rename or merge existing notes.
3️⃣ Linked Note Template¶
Write a custom template that will populate the body of every new note. You can use standard markdown and insert the following double-braced dynamic placeholders:
| Placeholder | Replaced With | Example Output |
|---|---|---|
{{title}} |
The title of the calendar event | Brainstorming Session |
{{date}} |
Localized long-form date | Wednesday, May 20, 2026 |
{{timeString}} |
Start & end time or "All Day" | 10:00 AM - 11:30 AM or All Day |
{{location}} |
The location of the event | Meeting Room A or https://zoom.us/j/123... |
{{url}} |
The primary URL link associated with the event | https://zoom.us/j/123456789 |
{{description}} |
The full description / notes of the event | Discuss next major features and UI remastering. |
{{calendarName}} |
The name of the calendar source in Obsidian | Work Calendar |
Default Template Example¶
# {{title}}
**Date**: {{date}}
**Time**: {{timeString}}
**Location**: {{location}}
**Calendar**: {{calendarName}}
## Description
{{description}}
## Notes
-
Privacy & Robustness Invariants¶
Privacy First
All event notes reside locally in your Obsidian vault. They are never sent to external servers (like Google or CalDAV host servers). Your private thoughts, notes, and tasks remain strictly yours.
Robust Link Preservation
The link between your note and the remote event is stored via lightweight parameters inside the note's YAML frontmatter:
fc-event-uid: 0q5u45oijpqnkljsndpfoiash98
fc-calendar-id: google-calendar-work
📚 Related Resources¶
- Google Calendar Setup — Connect your Google account with two-way sync.
- CalDAV Setup — Connect iCloud, Nextcloud, Fastmail, and other CalDAV servers.
- ICS (Remote & Local) — Link public web calendars or vault-relative
.icsfiles. - Outlook Integration — Sync with Outlook/Exchange calendars.
- Event Linked Notes Architecture — Decoupled reactive architecture and SOLID principles.