fix duplicated events, refactor fullcalendar event source