Full Calendar Changelog¶
This page provides a detailed breakdown of every version of the Full Calendar plugin, including new features, improvements, and bugfixes.
Version 0.12.3¶
-
New: Deep Tasks Integration with Backlog & Filtering (#122, #128, #136) Full Calendar now has first-class support for the Obsidian Tasks plugin. A new "Tasks" calendar source syncs your tasks directly onto the calendar. Features include a dedicated task backlog, drag-and-drop rescheduling, and in-calendar completion. Create, update, and delete tasks without leaving the calendar view.
-
New: Advanced Date Navigation (#106) Navigate your calendar with precision using the new "Go To" dropdown in the toolbar. It features a reusable
DatePicker
and context-aware navigation. Right-click on the calendar to jump to a specific month, week, or day. -
Improvement: Task Management Workflow & Parsing (#132, #134, #138) The Tasks integration includes advanced parsing for dated and undated tasks, multi-day event support, and custom status detection. A new setting allows stripping tags from task titles for a cleaner display. The entire parsing logic is covered by a comprehensive test suite for maximum reliability.
-
Improvement: Performance & Stability The plugin now performs surgical updates on file changes instead of full-vault rescans, significantly improving performance in large vaults. Remote calendars now load in a non-blocking, priority-ordered manner, and race conditions during event source removal have been fixed.
-
Improvement: Provider Architecture The provider registry now loads calendars with priority and uses a new
isFileRelevant()
hook for cleaner file-change handling. "Manage calendar" logic has been delegated to the respective providers for better modularity. -
Fix: Notification and Reminder Reliability End-time reminders now fire correctly for events that are already in progress, ensuring you never miss the end of an important block of time.
-
Fix: Core Component Stability (#100, #101, #126) Fixed numerous bugs, including a race condition when removing event sources, an issue preventing the create modal from appearing if no editable calendars exist, and a bug where the Daily Notes calendar would fail without a template. New calendars now appear instantly in settings without a "Provider not found" flash.
Version 0.12.2 (beta)¶
-
New: Multi-day Daily Note events with explicit endDate
Daily Note calendar now supports explicit multi‑day events via[endDate:: YYYY-MM-DD]
while remaining backward compatible with legacy overnight detection. -
New: Central TimeEngine
Single timer maintains a sorted time-sensitive cache and publishes atime-tick
event consumed by status bar, notifications, and other listeners. -
New: Status Bar current/upcoming events
Lightweight status bar UI subscribes toTimeEngine
to surface what's happening now and next. -
New: Interactive time‑axis zoom (#96)
Ctrl/Cmd + scroll to dynamically zoom the vertical (timeGrid) or horizontal (resourceTimeline) axis for fast focus changes. -
New: Advanced recurrence intervals & positional monthly rules (#97)
Support for interval-based repeats (e.g., every 2 weeks) and positional monthly rules (2nd Tuesday, last Friday) with iCal import/export parity. -
Improvement: Codebase compliance & safety
Replaced looseany
casts, moved inline styles to CSS, addedinstanceof
guards for file/folder objects, removed custom leaf detaching on unload. -
Improvement: Reactive calendar view lifecycle
view-config-changed
now triggers targeted cache repopulation and a newresync
event prompts precise re-renders for snappier UI updates. -
Improvement: NotificationManager refactor
No internal timer; now a passive subscriber toTimeEngine
, reducing duplicate intervals and simplifying lifecycle management. -
Fix: Robust timezone conversion for cross-day events
convertEvent
rewritten as a pure function; correctly handles explicitendDate
and legacy overnight semantics with stricter type guards.
Version 0.12.1 (beta)¶
-
New: Event Reminder System with Desktop Notifications (BETA) Introducing the
NotificationManager
for native desktop notifications. Users can opt-in to receive reminders 10 minutes before events start and, optionally, 10 minutes before they end. Perfect for never missing important meetings or deadlines. -
New: Multi-Account Google Calendar Integration
Google Calendar integration now supports connecting and managing multiple accounts simultaneously. Features a dedicated account management hub with a streamlined two-step wizard for adding new calendars from any connected account. -
Improvement: Provider-Based Architecture with Multi-Account Support
Complete architectural overhaul to a provider-based system where each calendar source (Local, Daily Notes, ICS, CalDAV, Google) is a self-contained, instanced provider. The newProviderRegistry
acts as a central persistence gateway, managing all I/O and abstracting storage details. This enables stateful features and robust multi-account Google Calendar integration. -
Improvement: Event-Driven Settings with Instant Updates
Settings persistence refactored to a publish/subscribe model. ThesaveSettings
function now diffs old vs new state and publishes granular events (sources-changed
,view-config-changed
,settings-updated
). Calendar views re-render instantly without flicker or unnecessary reloads. -
Improvement: Lazy-Loading for Faster Startup Performance
Heavy dependencies are now dynamically imported only when needed: FullCalendar engine loads when opening a calendar view, React modals load on demand. This dramatically reduces startup time and memory usage. -
Improvement: Centralized Event Enhancement Pipeline
NewEventEnhancer
module centralizes all timezone conversions and category parsing, essentially intercepting all raw events befor it reaches the Cache. Business logic extracted into dedicated stateless modules with a newWorkspaceManager
handling all workspace filtering and display logic. -
Fix: Timezone Handling for Recurring Events #94 Recurring events now properly handle timezones with endDate support, resolving timezone branching issues and ensuring correct time display across different time zones.
-
Fix: ICS events now loads properly #91 Parsing issues in Remote ICS calendar is fixed and should now load properly.
Version 0.11.9¶
-
New: Calendar Workspaces (#90)
Save and switch between customized calendar setups (sources, filters, and view preferences). Workspaces include a header switcher, a command palette action ("Full Calendar: Switch Workspace"), and an optional default workspace on startup. Saved state covers selected sources (Local, Daily Notes, ICS, CalDAV, Google), category/sub‑category filters, tasks visibility, all‑day toggle, initial view (month/week/day/timeline), week start, and time‑grid display options. -
Improvement: Faster Switching and Rendering
Workspace application is incremental (sources → filters → view) to avoid full calendar rebuilds. Switching preserves context where possible (e.g., scroll/selection) and significantly improves responsiveness on large vaults. -
Improvement: Workspace Management UX
Add Save as Workspace, Rename, Delete in the calendar header menu; set a Default Workspace in Settings; and assign hotkeys through Obsidian’s Hotkeys for one‑press switching. -
Fix: Edit Modal Sub‑category Parsing
Fixes a regression where sub‑categories could disappear when editing the title in the modal. The title parser now consistently preserves theCategory - SubCategory - Title
format on save. -
Fix: Workspace Persistence Edge Cases
Improved robustness when loading a workspace that references a removed or renamed source. Adds safe fallbacks to an "All Events" view and clearer status messaging.
Version 0.11.8¶
-
New: Business Hours and Background Events Support Highlight working hours in calendar views and display events as background highlights (e.g., vacations or focus blocks). Configurable via settings and event frontmatter.
-
New: Timeline View Category Shadow Events (#76) Adds optional display of category shadow events in Timeline View for better visual context and planning.
-
New: Real-Time Duplicate Event Validation (#67) Prevents creation of duplicate events in the calendar interface, improving scheduling accuracy.
-
Improvement: Edit Modal Now Supports Subcategory Editing The "Edit Event" modal now parses and displays sub-categories directly in the event title. Users can edit them inline and changes are preserved.
-
Improvement: Settings Modal Reorganization and Footer UI updates include reorganized settings for better clarity, hover hints for display options, and a new footer for versioning and help links.
-
Improvement: Configuration Migration for Legacy Support Legacy settings like
subprojectKeywords_exclude
are migrated automatically, and missing fields (e.g.,persona
) are filled safely. -
Improvement: Type Safety and Safer DOM Manipulations (#69, #71) Removed unsafe type assertions across key modules (
DailyNoteCalendar
,GoogleCalendar
,interop
) and introduced robust DOM update utilities (safeCreateEl
,safeEmpty
). -
Fix: Recurring Task Completion Preserves Child Timing (#75) Undoing completed recurring tasks now correctly retains the timing of override events. Adds full test coverage for various edge cases.
-
Fix: All-Day Events Treated as Floating in RRULE All-day recurring events now behave correctly as floating events, fixing unintended start time offsets.
-
Test: Coverage for Business Hours, Background Events, and Override Logic New test suites validate schema correctness, UI rendering, and recurring timing behavior.
Version 0.11.7¶
-
New: Full Google Calendar Integration with Two‑Way Sync Connect your Google account to create, modify, and delete events (including recurring events) directly in Obsidian. Includes OAuth 2.0 authentication, calendar selection, and proper token refresh handling.
-
Improvement: Centralized and Reusable Form Components Inputs like URL, Username, Password, Directory Select, and Heading have been refactored into dual‑mode primitives with a
readOnly
mode for consistent display. A genericTextInput
replaces one‑off components. -
Improvement: Modularized Settings Tab and Changelog Component Settings sections are now organized into dedicated renderers with improved type safety. A new
Changelog.tsx
component has been added for clearer update visibility. -
Improvement: Unified Event Parsing Pipeline Calendar parsers now output raw events without settings dependencies and pass them through a single
enhanceEvent
function for category logic. Tests have been updated to separately verify raw parsing and enhancement. -
Improvement: Modular Event Cache Management The
EventCache
logic is split into dedicated modules (RemoteCacheUpdater
,LocalCacheUpdater
,IdentifierManager
,RecurringEventManager
), making synchronization and recurring event handling more reliable. -
Fix: Daily Note Calendar Parsing and Cache Update Logic Parsing bugs in
DailyNoteCalendar
have been fixed, andmodifyEvent
now correctly flags dirty events to ensure the UI updates when frontmatter changes (e.g.,skipDate
). -
Other: Codebase Refactor for Type Safety and Maintainability Shared types and utilities have been centralized, internal names clarified, and redundant code removed—all without changing user‑facing behavior.
Version 0.11.6¶
-
New: Advanced Categorization with Hierarchical Timeline View
Events can now be organized by categories and sub-categories in a new Resource Timeline view. Expandable groups and aggregated parent rows make it easier to manage complex schedules. -
New: Drag-and-Drop Category Reassignment
Change an event’s category or sub-category directly from the timeline view by dragging it to a different lane. Titles and metadata update automatically. -
Improvement: Cleaner UI and Initial View Options
The event modal and settings UI have been polished with dropdown options and a new initial view setting that supports the timeline view. -
Improvement: Smarter Event Titles and Filenames
Events now display clearer titles (e.g.,SubCategory - Event Name
) while keeping filenames and internal data consistent. -
Fix: Multi-Level Category Parsing
Parsing of event titles with multiple category levels (e.g.,Category - SubCategory - Title
) has been fixed, ensuring correct category and sub-category assignment. -
Other: License Update
The plugin license has been updated to GPLv3 to comply with FullCalendar requirements.
Version 0.11.5-beta¶
-
New: Monthly and Yearly Recurring Events
You can now create events that repeat every month or every year — perfect for things like anniversaries, billing cycles, or project reviews. -
New: Smarter "Repeats" Menu in Event Modal
The old "Recurring" checkbox is gone. Instead, use a new dropdown to choose from Weekly, Monthly, or Yearly recurrence. The UI updates dynamically to match your selection. -
Improvement: Human-Friendly Filenames for Recurring Notes
Recurring event notes now get cleaner, more descriptive names like(Every year on July 30th) My Event.md
. -
Improvement: Enhanced Timezone and All-Day Support
Timezone handling for recurring events is now more accurate, and All-Day events display correctly across time boundaries. -
Fix: Right-Click Task Toggle for Recurring Tasks
Recurring tasks can now be marked as complete using the right-click menu, just like one-off tasks. -
Fix: Safer Rendering and UI Cleanups
Removed use of unsafe HTML injection in the UI. Improved event rendering, loading states, and general UI responsiveness.
Version 0.11.4¶
-
New: Smarter Recurring Events and Tasks
Recurring events can now be edited per-instance — drag, resize, or complete a task without affecting the whole series. Changes are reversible and tracked cleanly. -
Improvement: Safe Deletion with Confirmation Options
Deleting a recurring event now asks whether to remove just one instance, the entire series, or promote existing edits to standalone events. -
Improvement: Better Task Behavior for Repeating Events
Recurring tasks now behave just like regular ones — you can check them off individually, and they show up correctly in the calendar. -
Fix: Multi-day all-day events fix by @yalikebaz Multi-day all-day events made inclusive for local calendars. Thanks to @yalikebaz for the fix!
-
Fix: Performance and Architecture Improvements Refactored recurring event logic, improved performance on large calendars, and cleaned up the plugin architecture to prepare for future features.
Version 0.11.3¶
- New: Insights Engine has smarter Dashboard with Personas
Adding persona (predefined rules like "Productivity", "Routine") to Categories in Insight Config Setting now cater to more powerful analysis. - Fix: Insights Panel and Dashboard Bugfixes
Multiple bugfixes and UI adjustments focused on the Insights panel.
Version 0.11.2¶
- New: Insights Engine in ChronoAnalyser
New intelligent engine that can analyse your calendar for past events and give you cool insights. - Improvement: Redesigned ChronoAnalyser UI/UX
Chronoanalyser now much more elegant. Check it using theAnalysis
button in the Full-Calendar Window. - Fix: Multiple Bugfixes in ChronoAnalyser
Make ChronoAnalyser more stable and reliable. Plotting and Insights now work more reliably.
Version 0.11.1¶
- New: Category Coloring Engine and Settings UI
A new optional setting, 'Enable Category Coloring,' allows you to color events based on a category defined in the event's title (e.g., 'Work - Project Meeting'). This overrides the default calendar color for fine-grained visual organization. - New: Category-Aware Event Modal
The Edit/Create Event modal now features a dedicated 'Category' input field. It provides intelligent autocomplete suggestions based on all your previously used categories, making categorization fast and consistent. - Improvement: Redesigned Event Modal UI/UX
The Edit/Create Event modal has been completely redesigned with a polished two-column layout, logical grouping of fields, and a dedicated footer for actions, improving clarity and ergonomics. - Improvement: Color Palette Enhancements
Colors no longer default to black, but are now rotated from a carefully chosen Palette. - Improvement: "Open Note" Workflow Enhancement
Clicking 'Open Note' in the modal now opens the note in a split view, improving calendar-note navigation.
Version 0.10.13-beta¶
- Improvement: Robust Timezone Support
Events from local and remote calendars are now fully timezone-aware, fixing bugs related to DST and travel. - New: Strict Timezone Mode for Daily Notes
A new setting allows users to anchor daily note events to a specific timezone, just like regular notes. - Fix: Correctly Parse UTC Events from ICS Feeds
Fixed a critical bug where events specified in UTC from Google Calendar and other sources would appear at the wrong time.
Version 0.10.8¶
- New: ChronoAnalyser Released
ChronoAnalyser can now analyse your time spending! Check the newAnalysis
button in the Full-Calendar Window.
Version 0.10.7¶
- New: Initial Plugin Release
Welcome to the first version of the enhanced Full Calendar!
For a summary of major features, see What's New.