Calendar snapping

Snap events when dropped on top of existing events.
Do not save events to DB when they are overlapping.
Notify the user of the state of the app.
User can either fix the conflict manually, push down events or revert to a previous state.