YABU
You should have called them to let them know, someone else could have had the appointment even if it was just 15 mins warning you could have given.
I don't think they were harsh at all, if anything they've set out more than reasonable restrictions (do it again and we'll not offer apt for 6 months, cancel with an hour's notice - v fair!).
stop saying it wouldn't have helped if you'd only let them know a few mins later by phoning from the pharmacy, you should have called, you didn't, they've been more than reasonable by calling you out on it, stop minimising the impact you've had on the surgery (nurse/GP/etc time) and downplaying your ability to control the factors leading into this.
it's your responsibility to get yourself there on time and if unfortunate events like once-in-a-blue-moon traffic delays you, you let them know as soon as you can so that other service users might be able to use the service instead.
you should have done what you could do ensure that happened, but you didn't [for one of a million reasons you keep pulling out of the air to absolve you from any responsibility]
Own the problem yourself and stop making excuses OP.