How can I automatically list something once a week or once a month?

I’m creating an Airbnb type marketplace for career coaching. So instead of posting an apartment or a home, they post a specific type of career mentoring service, such as a 60 minute phone call. To keep them from getting overbooked, I’m trying to make it possible for them to list their service once and decide how often it will be available, for example once a week, once a month, etc. Any ideas on how I could make this happen?

Scheduled API to change a field containing a published status, when it runs, it would then schedule the next one to turn it back again.