Afaik there is no better way to do this ...
This is a shame as it is a missed feature and something that you (or your users) would expect would work, as you can set these dates.
and a publishing agent, in my opinion, is a bad and easy way to do this (why only an interval, a way out of control ... you donโt want the publication to be deleted in the middle of the most loaded time on the site).
They need the function to work automatically or you can set the publication time, i.e. evyer day at 23:30 or something like that.
So, I would say that the only way to better control this is to make your own function.
source share