Oh, I had one when I used an Android phone that worked really well. Hold on a sec..
Smoothsync for Google CalendarThey have a contact syncing app too. Worked pretty well for me, that was up until about six months ago.
EDIT: Hold on, that doesn't do quite what you're asking for - it allowed me to access my iCloud calendar directly on my Android phone, not keep the two in sync. Would that be a possible alternative solution? Actually just use the iCloud calendar, but be able to view it on your phone as well?