Welcome to the Apple Community.
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.
I wish I'd found this earlier. Here's some info that takes Winston's solution a bit further:
I just spent a bunch of time with Apple and have solved my similar problem. A week ago, iCal and my iPhone calendar stopped syncing. My assortment of iCal calendars were gone from iCloud, so that was the problem (not phone to iCloud). After much de-selecting and re-selecting, I realized that all my important calendars were @me.com type. I tested the iCloud calendars, and they functioned perfectly. Apple explained a simple way to migrate the @me.com calendars to iCloud:
Create a new iCloud calendar File > New Calendar > iCloud
Name the calender
Right click the old @me.com calendar and choose Export. Desktop is a good destination.
Drag the exported calendar from your desktop to the new iCloud calendar
iCal should show duplicates of all events in the @me.com calendar.
De-select the @me.com calendar. The duplicates will disappear.
Repeat with all the @me.com calendars and abandon this antiquated list.
Rejoice in your shiny new list of iCloud calendars that shows up everywhere it is supposed to.
There must be a lot of people out there who still have @me.com calendars, so I hope this info reaches them before they all spend time and money with Apple trying to sort it out.