Chore Calendar: recurring chores integration

I've always been torn between managing recurring chores as calendar events or as a to-do list, so I built an integration that does both. Each chore list is added through Settings > Integrations, and chores are managed via service calls. The integration exposes a calendar entity, a to-do entity, and a sensor entity per chore for each list.

Repo (HACS, full docs): GitHub - tcarney/ha-chore-calendar: A Home Assistant custom integration that manages recurring household chores · GitHub

Features

  • Service-driven management: Create, update, delete, and complete chores via service calls
  • Calendar entity: Read-only calendar per list showing every upcoming occurrence and recently completed chores
  • Todo entity: one todo list per chore list, surfaced through HA's native todo UI and Assist
  • Sensor entities: One sensor per chore tracking its current status and attributes, providing simple access for custom dashboards and automations
  • Custom Lovelace card: Built-in timeline card with per-entity filtering, colors, a detail dialog, create/edit/delete dialogs, and configurable actions
  • Tag scan auto-completion: Assign HA tags to chores for scan-to-complete; shared tags automatically resolve to the correct chore based on completion windows
  • Flexible scheduling: Calendar-grid recurrence (daily/weekly/monthly/yearly with weekday ordinals, month days, season windows, and end conditions), interval-based ("after N hours/days/months"), and oneshot (one-time tasks with optional due date) chore types
  • Skip occurrences: Skip the current occurrence or defer until a later datetime, without touching completion history
  • Status events: Fires events on chore created, status change, and chore deleted for use in automations
  • Persistent storage: Chore data stored locally, same as local calendar and local todo

How chores work

Every chore moves through a four-state cycle: pendingdueoverduecompleted. Grace periods and pending windows are configurable per chore, and once a chore goes overdue it stays pinned to that uncompleted period instead of silently rolling forward to the next one.

Three chore types cover different recurrence patterns:

  • Scheduled: fixed time on specific days (e.g. "8am on weekdays")
  • Interval: fixed duration from the last completion (e.g. "every 90 days")
  • Oneshot: a single task with an optional due date, useful for ad-hoc todo-style items or externally-driven due dates

Dashboard card

A custom Lovelace card is included and auto-registers — no manual resource setup needed. It groups chores by status, and tapping a row opens a detail dialog with Skip/Complete actions (Uncomplete too, if enabled). The card also handles creating, editing, and deleting chores directly, so the service-call path is no longer the only way to manage them.

Status

I've been running this with my family for a few months now. It replaced a pile of template sensors and automations I built by hand.

Looking for feedback

A few things I'd like input on:

  • Scheduling edge cases: anyone hit issues with DST transitions, chores that span midnight, or interval chores after a long HA downtime?
  • Create/edit UX on the card: this is new, so feedback on the flow itself (fields, layout, anything missing) is welcome
  • Missing chore types or options: what would make this fit your household better?