The biggest issue users here have when sharing any of their mailbox (be it inbox, calendar etc) is that they forget to grant even the most basic rights at the top level of the mailbox before they give rights further down the tree.
It can be confusing - it does actually go against most of Microsoft's security model where by assigning rights at the top they automatically cascade down the tree.
So, firstly remember to give that user some basic viewing rights at the top level - if attached to an Exchange server that will be "Mailbox - John Smith".
Then give more specific rights to the calendar further down the tree.