I’m building a Symfony 4 application where I need to connect Google Calendar API with FullCalendar library. The goal is to fetch events from Google Calendar and display them in FullCalendar, plus sync any changes back to Google Calendar.
I managed to retrieve Google Calendar events and formatted them as JSON:
First, check if your /api/events/fetch route actually works. Pop open dev tools and see if the request completes without errors. I’ve hit similar problems where the route threw 500 errors but FullCalendar didn’t show any useful error messages. Besides the JSON format issues others mentioned, you might need CORS headers if your API’s on a different domain. Timezone handling’s another pain point - Google Calendar sends UTC timestamps but FullCalendar interprets them based on your locale. I just convert timezones server-side instead of letting JavaScript guess. For bidirectional sync, add solid error handling since Google Calendar API gets cranky with rate limits.
your json structure doesn’t match what fullcalendar expects. fullcalendar wants “title”, “start”, “end” properties but you’re using “name”, “startTime”, “endTime”. either transform your data server-side or use the eventDataTransform callback in fullcalendar to map the properties correctly.
I had this exact issue with a Laravel app. Your /api/events/fetch endpoint is probably returning the wrong JSON format or just failing completely. Since you’re using events: { url: '/api/events/fetch' }, that endpoint needs to return data with title/start/end properties, not name/startTime/endTime. Check your browser’s network tab too - the AJAX request might be failing silently. I wasted hours debugging the calendar display when my API route wasn’t even accessible because of CSRF restrictions. For bidirectional sync, you’ll need eventDrop, eventResize, and eventClick callbacks to push changes back to Google Calendar API. Make sure each FullCalendar event stores the Google event ID so you know which Google Calendar event to update when something changes.
Honestly though, Google Calendar API gets messy fast. OAuth flows, rate limiting, webhook handling, bidirectional sync - I’ve watched teams burn weeks on this stuff.
I’d just use Latenode to automate the whole thing. It handles the Google Calendar connection and data transformation, plus triggers updates both ways without writing API code. You focus on your Symfony app while it manages the sync.