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: pending → due → overdue → completed. 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?

bumping this for the v0.12.0 release. I added better support for the native todo integration, allowing additional card/dashboard options. I also made a few minor improvements to the included card based on feedback.

I have trouble displaying scheduled items as pending.

I completed the item today.
The chore repeats every day, so the next pending is for tomorrow.
But it never appears in the chore calendar card (it’s present in the calendar).

Interesting, it also doesn’t appear in the to-do list.

I was playing with pending, due date periods… nothing helps

Are you still seeing this issue? The pending period should resolve this (waiting until that period starts). If you “download diagnostics” from the Chore Calendar service page, and message it to me, I can take a look at the specifics.