In days of old when men were bold we used paper based calendars and address books, today we have our mobile phones, one or more computers, Gmail, Outlook, iCloud and keeping all this in sync can be a pain in the butt.
The #1 best solution is to have one and only one calendar and address book. Segmenting your calendars and address book into a work calendar and a personal calendar and a work address book and a personal address book does not make sense. Work or play, you have only one life.
However, the realities of modern life often make having a single calendar or address book impractical. You need to share your work calendar with your co-workers and personal calendar with your significant other to schedule the kids. You do not want your work calendar cluttering up your significant others' ;-) calendars and you do not want the details of your kids soccer practice to be shared with your co-workers. You are a member or a club, church or synagogue and you don't want those contacts in your work address book, so barring having a single calendar and address book how do you keep all of these things in sync?
There is no silver bullet. There is no single way to do this. There is no software that will magically sync your calendars and address books perfectly. How you solve this problem depends on several factors. Ultimately you need to figure out a solution which works for you.
I recently discovered a program called GO Contact Sync Mod. It is a free and open source program that syncs contact from Gmail to Outlook, Outlook to Gmail. It works pretty well. It is not perfect. The sync does not take place in real time and the program must be running on a computer to work automatically, however it does what it is supposed to do and it does it well.
You can check it out here: https://sourceforge.net/projects/googlesyncmod/