There's a couple ways that this can be done, but they won't ever be as pleasant as it is with your bank account: when a withdrawal is made from you bank account, it doesn't matter which $X is taken, as long as $X is available. Bitcoin is a bit different, in that you must select which BTC to spend, and then you sign the transaction with the coin selection as part of it. This kind of removes one possibility, which is pre-signing transactions.
That's not to say that pre-signing transactions won't work, but you'd have to "lock" those funds in your wallet and not touch them. With a bank account, you could have a monthly recurring payment of $1,000, and it doesn't matter if you have $200 at some point, as long as you get back to $1,000 by the time the withdrawal is made. It won't work that way in Bitcoin.
And just for completeness, I should mention that the fact that each transaction requires your authorization is one of the primary reason to use Bitcoin! No one else has control over it except you. This is why people have credit cards stolen when a merchant's database is compromised, because you're trusting them to secure your CC number, which gives someone access to the credit behind the card. When you pay with Bitcoin, there is no way for the merchant to "do another pull." You have to initiate it, and they get no information that can compromise your funds. With extra security comes extra responsibility...
As such, there's a few ways to do what you are requesting. But all of them require you to pre-allocate all the funds ahead of time, and not touch them. If you needed to use those funds with the intention of replacing them, the app would warn you that you will invalidate your pre-signed payments. Maybe it won't be a big deal with a decent interface... but it doesn't change the fact that you
will break the auto payment and have to recreate it when the funds are available again. And if you are receiving monthly payments to your wallet, you obviously can't pre-sign payments from coins you haven't received yet...
So if you have enough laying around to allocate, you can:
(1) Just "lock" the coins in your wallet, and pre-sign 12 transactions of X BTC each. Your system will automatically broadcast one per month.
(2) You put the money into escrow -- a 2-of-2 tx between you and the merchant. This is more of a deposit-like system though, where you are required to prove ahead of time that the funds are available, and the funds may be returned to you later, but you can't just take it back unless they provide you a signature. Your app would pre-sign 12 transactions, which would only be one of two signatures needed for the tx to be valid. Once per month your system sends it to their server, they add the second signature, and you're done.
(2a) You use
Rapidly Adjusted (Micro)Payments which does the same as the 2-of-2 transaction above, but reduces the necessity to actually broadcast each transaction. The entire 12 payments will be bundled into 2 transactions (one at the beginning, and one at "settlement").
There's options, but they're probably not exactly what people want. If you're going to run your wallet yourself, anything you try to do to get exactly what you are seeking, will likely negate many benefits of Bitcoin that we value.