MassTransit is able to scheduled messages using a separate service that uses Quartz.Net and your transport provider.
This functionality is briefly described in the documentation but I felt there is a need to create a working demo.
So, it is now available on GitHub.
You need to run the MassTransit.QuartzService
in a separate process. For demo purposes you can use RAM storage in Quartz. Do do this, remove or comment out all ADO JobStorage configuration lines from the app.config and uncomment one line that configures the RAM storage.