Unfortunately iCloud has no built-in tool which can sync data in it with Android devices. Here are several simple setps which will allow you to keep contacts and calendars in Android device in sync with iCloud. NOTE! This can be done for absolutely FREE!

1. Install SyncMate Free edition on your Mac and SyncMate module for Android on your device - both can be downloaded from .

2. If you already store contacts and calendars in iCloud, you will need to merge this data back from iCloud to your Mac as SyncMate syncs only that data which is physically located on Mac.

Contacts.
Contacts can be transferred without any problems - just click "Keep contacts" button in iCloud dialog window.

Calendars.
When it comes to calendars, iCloud doesn’t allow transferring them back to Mac. In such case, you will need to sync them using SyncMate.
Just add "Cloud calendars" connection (use "Add connection" button), log into your iCloud account via SyncMate and sync calendars from iCloud to Mac (do not forget to choose this direction in iCal plugin settings).

3. Once you are sure all data you had in iCloud were transferred back to Mac, please, disable contacts and calendars sync in iCloud preferences.

4. You will need to add your Android device as a new connection (if you haven't done this before) - use "Add connection" button in SyncMate interface.

5. Sync Android with iCloud via SyncMate. You will need to add "Cloud contacts" or "Cloud calendars" connection in SyncMate wizard (depends on what you want to sync - iCloud contacts or iCloud calendars) if you haven't done this before and log into your iCloud account via SyncMate interface.

Once you need to sync contacts or calendars from Android to iCloud just sync them from Android to Mac and then from Mac to iCloud (or vice versa if you need to sync data from iCloud to Android).

The main advantage of SyncMate is that it allows storing your data in iCloud simultaneosely with keeping these entries on your Mac for futher sync with Android, and for now is probably the only tool that allows such type of data sync.

Hope this helps