Calendar is an optional Observer plugin that adds a calendar and to-do tab, plus calendar-related intake tools and runtime hooks. It is packaged as a plain JavaScript plugin.
Note: This is a plugin for https://github.com/doctarock/local-ai-home-assistant. It will need to be uploaded to your instance as a zip or copied into the server plugin directory.
- Calendar UI tab with daily, monthly, and edit views.
- To-do UI with open and completed items.
- Calendar event CRUD API routes.
- To-do CRUD API routes.
- Intake tools for finding, creating, updating, removing, and summarizing calendar events.
- Optional scheduled "Nova action" events that can queue runtime tasks when due.
- Runtime reminders for open to-do items.
calendar/
calendar-plugin.js Plugin entry point, manifest, routes, hooks, and tool registration
lib/calendar-domain.js Calendar and to-do domain logic
public/calendar-tab.js Browser UI mounted by the host plugin tab
Copy the calendar/ directory into the plugin directory used by your Observer-compatible host, then enable the plugin from the host application.
The host must provide the plugin API methods used by this plugin, including route registration, UI tab registration, data storage, capability registration, hooks, broadcasts, and runtime context access.
The plugin stores calendar events and to-do items through the host dataApi using these keys:
calendar-eventstodo-list
Calendar events, locations, descriptions, action messages, linked task IDs, and to-do text may contain private information. Runtime data for those keys should stay out of git. This repository includes .gitignore rules for common generated data paths and files.
The plugin registers these routes:
GET /api/plugin-ui/calendar/tab.jsGET /api/calendar/eventsPOST /api/calendar/eventsPOST /api/calendar/events/:eventId/stateDELETE /api/calendar/events/:eventIdGET /api/todosPOST /api/todosPOST /api/todos/:todoId/statePOST /api/todos/:todoId/remove
The plugin registers these intake tools:
get_calendar_summaryfind_calendar_eventscreate_calendar_eventupdate_calendar_eventremove_calendar_eventset_calendar_event_state