But when someones breath-taking irresponsibility means that other people suffer, there really is no excuse. She isn't being breathtakingly irresponsible.
She's making it clear that she cannot do both caring jobs at the same time so he needs to find cover. She made this clear in April. He should have seen in April there was a clash. He should have said in April that OP couldn't have leave off. And potentially then in April he could have sorted cover, disciplined and got rid of her, made it easier for people to swap.
Had op posted to say she'd left DS alone, had she said she'd plonked him on the neighbour where he cried for 4 hours, had she called the Boss Xmas Eve to say she wouldn't be in, had she just not turned up then yes, you'd be right.
But she booked leave months ago, she's made it clear she cannot care for clients on those days, she'd caring for her child. Perfectly responsible decision making.
She shouldn't have to book provisional childcare 6 months in advance and then save all year to pay 3-4 times her salary to pay for it. She shouldn't need to quit a job at Xmas having made a clear agreement to enable her to arrange childcare during work.
I gave up work too to care for my disabled child, but maybe that job helps keep OPs MH well so she can be the best carer for her child. Maybe it's under the limits of carers allowance so it tops up the actual amount she earns and enables them to live a little better.
Maybe people can make different decisions for different reasons to the same end and both be right