Doing a quick search, referring to MedExpress means you're probably American, so I'm going to answer this question from a North American perspective. I'm going to give some legal advice in the context of my answer, so I'm going to preface my entire answer by saying I Am Not A Lawyer, you should seek professional legal advice, and so on. With that said:
You're being screwed. Your employer is not allowed to deny you of using your vacation days. They are allowed to deny some days, for some reasons, within certain guidelines, but they are not allowed to blanket refuse you whenever you ask for vacation time. You are contractually entitled to some amount of vacation days, and you are contractually entitled to be able to use them on some amenable schedule, and your employer has to be reasonable to ensure that you can negotiate some schedule to do so. Regarding sick days, I don't know the details, but they probably fall under similar constraints, where your employer is allowed to require you to prove you were sick (with a doctor's note or something) but they are (probably) not allowed to force you to come into work when you're ill.
If you are fired over this issue, you probably have a legal case to bring against your employer for violating your contract by disallowing you access to sick and/or vacation leave. If it is really as bad as you say, you should consult legal counsel and see what they say. If they agree with this, you should:
Document everything. Get as much from your employer in writing as possible, and keep a personal diary of the rest. This means, when you want to go on vacation, send the request to your boss by email, not by talking in person. When you are sick, send an email, don't call on the phone. If you need to take your car for maintenance, you guessed it, email. If your boss responds to your email saying "please talk to me in person", keep a record of that, talk to him in person, and try as best you can to voice-record the conversation on your phone, and/or keep a diary of the meeting after the fact (what was discussed, what was said, and so on).
After you've collected some data as above, the next time your reasonable request is denied, do it anyway. This is difficult to do with actual vacation, but is much easier to do with sick days or other one-off appointments like car repair. When one of these appointments comes up, send an email to your boss saying you have an appointment and need the day off (don't ask, tell). He'll send you back some email like "if you're not at your desk then you're fired". Call his bluff. Make him fire you. Make sure you get some verification for where you were, and that you were actually doing the thing you said you were doing, for evidence in court; if this is a doctor's appointment then get a doctor's note, if it's a car repair then get a receipt from the mechanic, and so on.
If he fires you, take the company to court. The court will find in your favor and you'll definitely make enough money to at least tide you over until you find the next job, if not more.
Before you do the above though, once again: seek legal counsel and make sure this is a reasonable plan of action. If you don't actually have legal grounds to sue, then this is not a great plan; you're just going to lose your job and be back to square one.
The bottom line is, don't take this sitting down, you're not being treated right and you should make your employer treat you properly.
One more thing: do not make a complaint to HR. You don't want them to know this is coming. Any complaint you make to HR is likely to come off as a threat, and that's going to make them fire you before any of this plan goes into action. The only complaint you might want to make to HR is right now, you may want to send them a blanket non-committal notice that your boss is being unreasonable with time off, much the same way you said here, with examples. If they follow up then great, if they don't, then drop it and go to see a lawyer.