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);
}
