You can manage this through using the Information Management Policy which is in the List Settings. You can trigger an action off any Date Field, even the Created or Modified Date field. If you have an 'Expiry Date' field, you can use that. When the data criteria is satisfied you can use it to trigger a custom workflow to send an email reminder. A note on the 'recurrence' - I understand this to be a bit like a 'snooze' on an alarm clock.
If you configure your reminder to be triggered 1 month before the Expiry Date, then set the 'snooze' to two weeks, I think this would satisfy your requirements.
Here is an Answer I posted to a similar question yesterday - please check out the SP Maven's blog post on this subject.
You can also achieve all of this through using Windows Task Scheduler to run a powershell script, which in turn will start a Sharepoint Designer workflow. This needs to be configured on the server. I would try out my first suggestion though. Updated - sorry I just realised you're using SP Online, I think the latter option won't be possible for you.