If the sale tag is not enabling/disabling automatically, then I think that the sale tag is being managed manually by an attribute.
To manage it automatically, you need to make it dependent on the special price of the product.
To schedule the prices automatically, you can make use of attributes special price from
and special price to
attributes.
Please let me know if the logic is clear to you.