I could not find mention in your docs, but one possibly interesting application of this is for "regenerating scheduled tasks" \- aka "cron jobs". More concretely, on Unix, `at` is implemented via `cron`, but one can also implement `cron` via `at` \- simply via an `at` job which schedules its next cycle.
I am unsure this is common enough or that `now + period` is complex enough to warrant any specific API in a package as general as Bring Your Own Table, like your `at`, though it might be an interesting test/concept. (Even in the physical universe, there are layers of sync-async|periodic-aperiodic phenomena from the bottom to the top, such as CPU phase locked loops/timer oscillator chips providing synchronous backing for async activity.)