(2) is available by default through the graphql API as you pointed out.
(1) is a bit tricky. We need a representation of the underlying schedule in code in order to surface one in the UI. You would need your schedule generation backed by your own external database. This way, to create a new schedule, you could create a new entry in your fb (e.g a cron schedule) and then just reload the repository to see the new schedule.