Wrap upcoming occasion creation for new contact

WIP.
It works, but some refactoring is needed:

- [ ] Extract generic function composition behavior