I think the sync wont work out of the box (at least on my device) and this requires to install/utilize additional apps. Then it works fine (but I only can speak for my iCloud account on my device). I used two additional apps to sync my iCloud calendars and iCloud contacts. Configuration was quite straight forward. So first I tried to sync my contacts and used this here
ContactSync and later on I also wanted to get my appointments and installed this here
CalendarSync Both mention iCloud at their description so I simply asked the developer how to sync with iCloud and he sent me this tutorial (I used it and got a working sync so I can recommend it):
The configuration for iCloud is really simple. Please use the guided configuration mode to create a WebiCal/WebContact.
For CalendarSync.
Start App -> Press Menu button -> Select create WebiCal -> Select guided configuration mode (top most button) -> fill in:
URL:
https://caldav.icloud.com/
Username+Password:You Apple Id and the matching password
Press Test Connection -> Press Search calender -> Select which calendars you want to sync and Press Configure calendars -> Press the back button until you are back at the main screen and Press the top most Handle WebiCals button to start your first manual sync (of course you can also configure the app to sync automatically)
For ContactSync.
This is quite similar to CalendarSync, but you will need to create a WebContact (instead of a WebiCal) and use a different url ->
https://contacts.icloud.com/