Thank you for using Apple Support Communities!
So it sounds like the sync does not work 100% of the time on the iPhone but on your other devices it works find.
First I would like to recommend this part of the article named iCloud: Troubleshooting iCloud Calendar, that can be found here http://support.apple.com/kb/TS3999.
If you are having trouble with the Calendar app on an iOS device (iPhone, iPad, or iPod touch) and iCloud Calendar, try each of these steps, testing after each to see if the issue is resolved:
- Make sure you've updated to iOS 5 or later and that your iCloud account is configured correctly in Settings. For instructions on setting up the iOS for iCloud, see iCloud Setup.
- Make sure your iOS device is online. Attempt to view www.apple.com and iCloud.com in Safari. If you can't connect to the Internet, your iCloud calendars and events will not update in your Calendar application. Click here for more information about troubleshooting your internet connection.
- Open a secure website from your iOS device to test if you are online as is necessary for iCloud Calendar. This also tests if ports 80 and 443 are accessible. Calendar requires port 443 access to iCloud in order to push and pull updates to and from the iCloud Calendar servers.
- If recent changes simply don't appear in Calendar, try forcing a refresh by tapping Calendars in the top-left corner of Calendar to load the Calendars list. Then, tap the Refresh button in the lower-left corner of the Calendars list window.
- If you add new events on your iOS device, but they do not move to iCloud or other devices, you may want to verify your Default Calendar settings. If you would like to create new events in a specific iCloud calendar, then set that calendar to be your Default Calendar. You can modify the Default Calendar settings in iOS at Settings > Mail, Contacts, Calendars > Default Calendar.
- Quit and restart the Calendar app on your iOS device:
- Press the Home button.
- Double-press the Home button to open the multitasking menu.
- Tap and hold the Calendar icon until it jiggles.
- Tap the "X" to remove it from the list.
- Press the Home button to get back to your Home screen. Wait a minute before reopening the Calendar app.
- Restart your iOS device by holding down the Sleep/Wake button and then swiping the screen when prompted to Turn Off. This may sound simple, but it does reinitialize your network and application settings and can frequently resolve issues.
- Change the Sync settings for your calendars:
- Tap Settings > Mail, Contacts, Calendars.
- Scroll down to the bottom.
- Tap Calendars > Sync.
- If sync is set to All Events, set it to a specific duration, such as Events 1 Month Back. If it's set to a specific duration, set to All Events.
- Wait several minutes and try Refreshing Calendar again.
- Turn iCloud Calendar off and back on:
- Tap Settings > iCloud.
- Tap the Calendar slider off. Choose to delete data only if your data exists at icloud.com/calendar and/or one or more of your computers. Otherwise choose Keep Data.
- Wait a few minutes before turning the Calendar slider back on.
It is possible you may have to backup your iPhone to iTunes and then restore it from the backup. If so, then use this article.
iOS: How to back up and restore your content
All the best,