Read the statement by Michael Teeuw here.
MMM-Chores - Manage and keep track of your household Chores
-
@PierreGode – OK, thanks. I was just wondering what it is estimating, and what it is supposed to do with the estimates.
-
Hi! How does MMM-Chores determine current date for tasks? I create a task in the Admin page for today, but it only shows if I have the “Show past tasks” option checked. The “created” and “assigned” date are correct in the data.json file. The raspberry pi looks like it is in correct location and time zone.
-
@bossier17
MMM‑Chores reads the current date from JavaScript’s built‑in Date object, which pulls time information directly from the host system’s clock. The display logic calls new Date() to obtain “today,”Test it creating a clock.js with and run it with node clock.js this is what the app uses
const now = new Date();
console.log(new Date().toString()); -
@PierreGode said in MMM-Chores - Manage and keep track of your household Chores:
const now = new Date();
console.log(new Date().toString());hmmm I can’t figure it out. clock.js returns the correct date/time. But I cannot get today’s tasks to show on the mirror. Somehow the display Chores on the Mirror is showing tomorrow’s chores only. If I put a chore in the admin page for tomorrow it will display. But chores I put in with today’s date only show if I have “Show Past Tasks” checked. Any ideas?
-
@bossier17
I made an update that I hope resolves the issue.
Update the module with git pull
/Pierre -
@PierreGode Awesome! That worked. Thanks so much!
-
Major update on its way coming days!
- added optional login with possibility to add both write permission user and read only user.
- added pushover notification possibility+ configuration to set daily reminders at specific time.
- added background images " 4 seasons"
-reworked task list, moved up user assignment to creation space
-reworked edit option to be a form to be able to update task description, user and date
see images below





-
Is it possible to have a recurring weekday only task? Just Monday-Friday?
-
@johngalt @sdetweil @redbeardedninja @sarote @mischag @plainbroke @
New big update out now.
New reward system
more recurring optionsFixes and updates.


-
Hello! New user here, love the UI (especially the admin features!) I’m building a secret Christmas gift for my wife (who is obsessed with organization). I was about to give up on MM - until I found your module!
Question: I see daily, weekly, monthly options - is there a feature to set reoccurring events that are Monday Friday? This is specific to kids who may have daily ‘weekday’ tasks to do that aren’t required on Saturday or Sunday. I’m happy to skip the UI - aka, create an event in the UI and then tweak the underlying config via CLI.
Thank you!!!
E
EDIT:took a gander at your code (yeah, you are a pro - this is REALLY CLEAN (I’m a hack, but I know good work when I see it lol). Looks like an update to the getNextDate function, adding the pattern to the admin html file and the lang pack (I only added it to the enlish one (remember, hack here) seems to work pretty well. I’ll search a bit further and do a little testing to see how it behaves - but… a thing?
E
function getNextDate(dateStr, recurring) { const d = new Date(dateStr); if (recurring === "daily") { d.setDate(d.getDate() + 1); } else if (recurring === "weekly") { d.setDate(d.getDate() + 7); } else if (recurring === "monthly") { d.setMonth(d.getMonth() + 1); } else if (recurring === "yearly") { d.setFullYear(d.getFullYear() + 1); } else if (recurring && recurring.startsWith("every_")) { // Custom recurring patterns: every_X_days, every_X_weeks, first_monday_month const parts = recurring.split("_"); if (parts[1] === "X" && parts[2] === "days") { const days = parseInt(parts[3]) || 2; d.setDate(d.getDate() + days); } else if (parts[1] === "X" && parts[2] === "weeks") { const weeks = parseInt(parts[3]) || 2; d.setDate(d.getDate() + (weeks * 7)); } else if (recurring === "first_monday_month") { // First Monday of next month d.setMonth(d.getMonth() + 1); d.setDate(1); // Find first Monday while (d.getDay() !== 1) { d.setDate(d.getDate() + 1); } } else { return null; } } else { return null; } return d.toISOString().slice(0, 10); }
