Learning User Preferences and Understanding Calendar Contexts for Event Scheduling