To my knowledge, there is nothing in Rules to "overwrite existing scheduled actions" (as in your question). However, by every time attempting to perform an appropriate delete of an already scheduled rule, prior to scheduling a new rule, you achieve a similar result. And such attempt just gets ignored if there was no scheduled rule yet. Read on for more details ...
Have a look at my answer to "Rule to store user's last post date and scheduled rule based 30 day reminder" for an illustration about how to delete scheduled tasks, using the "schedule_delete
". As explain in that answer: the schedule_delete
that is part of this rule is to ensure that previously "scheduled" reminders will get removed when updating the data field (so that it only triggers 1 reminder, and with the most recent date).
To make this work (that you actually indicate the exact scheduled task to be deleted), you need to specify an appropriate "identifier
", like "[account:name]
" in my example. To understand how I know what in my case the identifier is of the task to be deleted, look at the way I specified my (new) scheduled task to be created: it is "identifier" : "[account:name]"
, which is what I used as my identifier to schedule a task.
In your case, I think using the node's ID
as part of the identifier would be a pretty good choice for such identifier.