How could I sync ONLY my calendar with Gmail (optionally when a WiFi connection is available)?
EDIT: To only sync the calendar you first have to switch off everything else:
Go to Settings -> Accounts -> YOUR Google Account
and un-check all the sync targets you don't want (Chrome, GMail, Drive, Contacts, ...)
/EDIT

Then you can take care of when to have it sync.
Generally, this is left to 3rd party apps.

You can always pick your favourite 3rd-party app to get that feature, and there is a ton of it. Some samples:


JuiceDefender (free/plus/ultimate/beta, you'll probably have to buy ultimate for the feature you want)
Tasker
Llama (not sure if it supports your use case)
or just search Google Play for 'profile sync schedule' (or similar)


The latter two examples are somewhat complicated to set up but are very powerful. I'd try JuiceDefender.