From calendar
Aggregates deadline items from all plugin open-loops.md files within a 60-day window, sorted chronologically with urgent items flagged. Useful for deadline alerts, weekly agendas, and planning flows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/calendar:flow-collect-deadlinesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Trigger:** Called by `op-deadline-alert`, `op-weekly-agenda`, `op-deadline-planning`
Trigger: Called by op-deadline-alert, op-weekly-agenda, op-deadline-planning
Produces: Sorted list of cross-domain deadline items with urgency flags passed to the calling op
This flow is the deadline aggregation engine. It discovers all installed plugins by scanning ~/Documents/aireadylife/vault/ for subdirectories with an open-loops.md file, then reads each file and extracts every item that contains an explicit due date.
Date extraction: The flow parses due dates from two formats. ISO format (YYYY-MM-DD) is the primary format — if an open-loops item contains a date in this format, it is extracted as the due date. Natural language date phrases are also parsed: "by end of April" → last day of April, "this Friday" → the next upcoming Friday, "April 15" → April 15 of the current or next year (whichever is upcoming), "next quarter" → first day of next quarter. If a date phrase is ambiguous or cannot be parsed with confidence, the item is excluded from the deadline list and noted in the result as "unparseable date — excluded."
60-day window: Items with due dates beyond 60 days from today are excluded from the output to keep the result focused and actionable. Items at exactly 60 days are included. The 60-day limit can be overridden by the calling op if a longer horizon is needed (for example, the annual review op might request a 90-day window).
Urgency tagging: Each extracted item is tagged by urgency tier. Urgent: due in 0-7 days (surfaces immediately, no matter what else is in the list). Upcoming: 8-30 days (needs to be scheduled soon). Horizon: 31-60 days (on the radar; don't need action this week but should not disappear). Urgent items are returned first in the result list regardless of sort order, and the calling op is responsible for displaying them prominently.
Hard deadline annotation: The flow recognizes a set of known hard deadline patterns and annotates matching items automatically. Known hard deadlines include: April 15 (federal tax filing, Q1 estimated tax), June 15 (Q2 estimated tax), September 15 (Q3 estimated tax), January 15 (Q4 estimated tax), October 15 (federal tax extension deadline), state-specific tax filing dates (where the source domain's vault contains state information), and common insurance enrollment windows. Items matching these patterns receive a hard_deadline: true annotation so downstream ops can display them with the appropriate urgency emphasis.
vault/calendar/01_prior/ — prior period records for trend comparisonReturns structured list to calling op:
[
{ domain: "tax", item: "Q1 estimated payment", due_date: "2026-04-15", urgency: "urgent", hard_deadline: true, priority: "🔴" },
{ domain: "business", item: "LLC annual report", due_date: "2026-04-22", urgency: "upcoming", hard_deadline: false, priority: "🟡" },
{ domain: "benefits", item: "ESPP enrollment decision", due_date: "2026-05-08", urgency: "horizon", hard_deadline: false, priority: "🟢" },
...
{ metadata: { excluded_unparseable: 2, excluded_beyond_60_days: 1 } }
]
Optional override via calling op:
window_days — extend beyond default 60-day window (e.g., 90 for annual review)include_completed — default false; set to true to include completed items for historical reportingexcluded_unparseable count in metadata.~/Documents/aireadylife/vault/calendar/01_prior/ — prior period recordsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub fru-dev3/ai-ready-life --plugin calendar