Dates
The select options for the Unit property need to match those available for the
dateAdd
function and are case-sensitive.Next from 1st
(empty(prop("Recur Every")) or empty(prop("Unit"))) ? prop("1st Instance") : dateAdd(prop("1st Instance"), prop("Recur Every"), prop("Unit"))
Next from Now
(empty(prop("Recur Every")) or empty(prop("Unit"))) ? fromTimestamp(toNumber("")) : dateAdd(prop("1st Instance"), ceil(dateBetween(prop("1st Instance"), now(), "days") / dateBetween(prop("1st Instance"), prop("Next from 1st"), "days")) * abs(dateBetween(prop("1st Instance"), prop("Next from 1st"), "days")), "days")
Date/Next
(formatDate(now(), "L") != formatDate(prop("Date"), "L") and now() > prop("Date")) ? ((empty(prop("Recur Every")) or empty(prop("Unit"))) ? prop("Date") : dateAdd(prop("Date"), ceil(dateBetween(prop("Date"), now(), "days") / dateBetween(prop("Date"), dateAdd(prop("Date"), prop("Recur Every"), prop("Unit")), "days")) * abs(dateBetween(prop("Date"), dateAdd(prop("Date"), prop("Recur Every"), prop("Unit")), "days")), "days")) : fromTimestamp(toNumber(""))
A version of Next from Now that doesn’t rely on Next from 1st.
Old
Next Date
dateAdd(prop("1st Instance"), prop("Recur Every"), prop("Timeframe"))
1st/Next = Today
or(formatDate(now(), "L") == formatDate(prop("1st Instance"), "L"), formatDate(now(), "L") == formatDate(prop("Next Date"), "L"))
Title
empty(prop("Next Date")) ? "" : ("Every " + format(prop("Recur Every")) + " " + prop("Unit") + " from " + formatDate(prop("1st Instance"), "MMM DD, Y"))