1. An expression of regret — this, usually, is the actual “I’m sorry.”
2. An explanation (but, importantly, not a justification).
3. An acknowledgment of responsibility.
4. A declaration of repentance.
5. An offer of repair.
6. A request for forgiveness.

So no ifs or buts — “I’m sorry if you were offended” is not an apology. Neither is “I’m sorry we missed our appointment but I had to drop off my dry cleaning on the way” or any other statement that’s actually just a counterargument to an accusation of fault. Don’t use the passive voice either: “mistakes were made” is a classic non-apology.

In my experience, a particularly critical component to apologizing is the “this won’t happen again” part. When you do something repeatedly and apologize each time, those are not really apologies. If you do this, you’re pretty clearly acknowledging that your relationship to the person you’re “apologizing” to is not as important to you as the behavior in question. Either stop apologizing for your behavior or work on changing it.