every time i use the external transfer feature on my banks website i see this box, and every time i think "there has to be a better, more generalized way to do this." that is programmer brainworm: there is no better way to do this. this box lists every reasonable option, described with the language people would use for the thing they want. if you select something that needs more input, it shows you the applicable options only at that time.
if you took a single step towards "generalizing" this, you would create a UI that programmers like, but 80% of normal people would find unusable. a baffling field of checkboxes and plus signs and calendar icons. shudder.
edit: conceivably, there could be a "custom" option here, for advanced users. my arguments for why it ain't are:
A) that's a ton of extra code on top of what's shown here, introducing tons of potential new bugs for an incredibly uncommon need
B) lots of people, especially people who think they know better (like most of us) will pick Custom, then design a schedule that does not actually do what they think it does.
Informing this: every UI I've worked with that attempted to model "custom recurring calendar event" was baffling, and in short order I watched many people design schedules in it that looked correct at first glance, but in fact did not remotely do what they intended. Bank transfers are not a good place to offer people a footgun of that sort.
Good UI is what accomplishes a users goals. Aesthetic minimalism has been ruining the usability of software for a solid 15 years now, and programmers are as guilty of desiring minimalism as much as anyone in tech.