Here's what I have done to solve much that same problem. It helps if you are in a locale where having an extra bank account and pre-registered recurring transfers doesn't cost extra.
First, as I get paid monthly, I did everything I could to pay as many bills as possible on a monthly schedule. If you get paid on a schedule other than monthly, just mentally replace "monthly" with whatever your pay period is as you read further.
For those bills which I still get less often than once monthly, I wrote down a list containing, among a few other bits mostly for my own use:
- Service or product rendered, or something else to remind me what this is for
- Payment schedule (e.g. quarterly, yearly, every two years, ...)
- Last payment date
- Expected next payment date
- Expected next payment amount
- Calculated monthly equivalent amount
You can trivially use a spreadsheet for tracking all of this, or even paper and pencil if you like a low-tech solution.
Go through all your recurring bills as far back as you need to feel confident that you've captured them all, and note the ones that don't correspond to your payment period. (I also noted the ones I get on a monthly basis, but that's optional for this to work.) This is likely to take a while to go through; on the upside, it's a one time thing. While you're at it, you may want to pad the "expected next payment amount" slightly, say by 5% or so, to account for price increases.
As an example, if the last insurance bill is for $200 per half year, that corresponds to $200 / 6 ~ $33/month. Add 5% to this, and the calculated monthly equivalent amount becomes $35.
Next, figure out how many months have passed since you last paid this bill, and multiply by the monthly equivalent amount for that bill. This will be your backlogged amount. Suppose you paid that insurance four months ago, which means you expect to pay it again in about two months. You will need to set aside 4 x $35 = $140 for this bill to get things started. This is technically optional, but I very highly recommend it.
Once that's done, either decide to just use that account to pay those bills, or set up recurring transfers to the account that you normally use to pay those bills for the padded amount, with appropriate recurrence. In the case of our fictional insurance bill, you would set up a recurring transfer for $210 every half year and with a starting date near the expected next payment date.
The final step is to sum all the monthly equivalent amounts, and set up a monthly transfer to the account which you set up for this for that total amount.
This turns all of those pesky non-monthly, large bills into a fixed, lower monthly cost. When the bill arrives, you pay it normally, safe in the knowledge that the money is there.
Remember to keep the list and the bank transfers up to date; for example, if a bill comes in larger than expected, consider whether the expected next payment amount is still reasonable, and adjust as necessary. Also don't forget to note any new regular bills you're adding, for services you're signing up for, as well as of course remove those that correspond to services you're no longer paying for. Long term, this will only work as well as you're willing to continually keep it up to date, but keeping it up to date is a lot less work than it is to initially set it up.