The modify-date operation shifts a date forwards or backwards. You describe the change in words and the operation works out the new date.
The result always comes back in ISO 8601 format, such as 2024-02-22T15:30:00+00:00, whatever format went in.
How it works
You write the shift in the parameter, in plain English.
Value: 2024-02-21 15:30:00 Change: +1 day Result: 2024-02-22T15:30:00+00:00
Value: 2024-02-21 Change: -2 months Result: 2023-12-21T00:00:00+00:00
Value: 2024-02-21 Change: next Monday Result: 2024-02-26T00:00:00+00:00
Common forms are +30 days, -2 hours, +1 month, next Monday, last day of this month. PHP understands a lot more than that, and the reference at the bottom has the full list.
Using another field in the shift
The change does not have to be fixed. Put a field reference in braces and it is filled in before the date is worked out.
Change: +{period} days
That is how you build an expiry date from a term the customer chose, rather than writing a separate step for every possible length.
The output format is not optional
The result is always ISO 8601. If the advertiser wants something else, follow this step with format-date.
That is the usual pair: shift the date, then write it the way they asked for.
An unreadable date stops the flow
If the value cannot be read as a date, the node fails with an error and the branch stops there.
Put a condition on the step so it only runs when the field holds something. An empty date field is the most common cause by a distance.
Careful with months
Adding a month is not the same as adding thirty days, and the difference shows up at the end of a month. 31 January plus one month lands in March, because February has no 31st and the overflow carries forward.
If you mean a fixed number of days, say days. Use months only when the advertiser’s rule is genuinely expressed in months.
Working with the other date operations
- modify-date shifts a date
- format-date writes it a different way
- unix turns it into a number
Shift first, then convert or format. Doing it the other way round usually means the shift runs on text that is no longer a date.
Reference
See PHP: DateTime::modify and Relative Date and Time Formats for everything the change accepts.

