Simple answer - shoot the Grandma's birthday! You're committed, it's for a coworker and is the professional approach.
Hire another photographer to shoot the larger job but be sure the client knows you're sending in a colleague and then be sure to follow up well after the job.
I was second shooting a wedding for a friend (we simply exchange services) last Friday and got a call from a couple looking for a photog on the same day. I could've taken the paid job and left my friend high & dry but I didn't, I followed through on my commitment. It's part of business, you either take the jobs as they come, or you hold out waiting for a larger job and run the risk of being unbooked.

