First check that all your settings are correct, that calendar syncing is checked on all devices (system preferences > iCloud on a mac and settings > iCloud on a iPhone, iPad or iPod).
Make sure the calendars you are using are in your 'iCloud' account and not an 'On My Mac', 'On My Phone' or other non iCloud account (you can do this by clicking/tapping the calendar button in the top left corner of the application ), non iCloud calendars will not sync.
If you are sure that everything is set up correctly and your calendars are in the iCloud account, you might try unchecking calendar syncing in the iCloud settings, restarting your device and then re-enabling calendar syncing settings.
the only solution i have found is to go to the icloud settings in my phone and toggle the calendar off while keeping it on the iphone. i then turn it back on and merge it. problem with this approach is i get duplicates of any items merged previously.
it is just incredible that apple can't make something so simple function correctly.