This question is an exact duplicate of:
If you can log in to https://www.icloud.com and inspect your calendar, that will tell you if the issue is on the server end with missing data (or a failure of your account) or if the phone just can't get a good sync from the server.
The steps to troubleshoot both are a little different, but we'd love you to ask that question once you've figured out where the problem lies.
I'm having a major headache inducing issue with iCloud sync. My wife and I have shared calendars for a long time and it has helped us a great deal.
The problem now is that my wife's iPhone has stopped syncing it's calendar with iCloud. If we log onto her account at iCloud.com and add somehting, it syncs to my iPhone as usual, but not to hers.
If I add something to my calendar in my iPhone or iCloud.com, it does in fact sync to her iPhone with some lag. What seems to be cut off from iCloud is her own calendar. I have tried all possible settings with iCloud and calendar app etc, nothing works. And yes, I've tried turning it off and back on again. Did a soft reset, didn't help.
Please, any ideas as to what can be causing this?
Try creating a new calendar within her iCloud account. Don't share it yet. Add, edit, and delete events both on her iPhone and iCloud.com through a browser. If this works as expected, share the new calendar with your iCloud account. Repeat the add/edit/delete cycle to see if changes propagate across all devices now. If this works too, use the new calendar instead of the old calendar going forward.
I discovered what the problem was on my husband's iPhone 4. He uses iCloud as well as Gmail calendars. When he was creating a calendar event, he didn't realize that the Gmail calendar was being used. He could see the event on his Gmail calendar but it wouldn't sync to my iCloud calendar. When creating an event, check below to see if you have an option to change the calendar (below the Alert). Once he chose the iCloud email, it sync'd just fine.