I don’t have the UI part down, but I solved this using Action scheduler. It’s become my go to for this stuff. Relatively safe to include as a dependency, reliable as can be.
My projects are leveraging PHPNomad’s Tasks library, but I don’t think that really helps you if you’re not in that ecosystem. (It just uses action scheduler anyway)