Internet Explorer timezone problems with Google Calendar API integration

I’m working on connecting Google Calendar API to a jQuery DatePicker widget. Everything runs smoothly on most browsers but IE is giving me headaches as always.

Here’s my current implementation:

$.ajax({
    url: "https://www.google.com/calendar/feeds/[email protected]/public/full?alt=json",
    type: "GET",
    dataType: "json",
    success: function(response, status) {
        $.each(response.feed.entry, function(i, item) {
            if(item.gd$when) {
                var formatted_date = $.datepicker.formatDate('yymmdd', new Date(item.gd$when[0].startTime));
                if (!(events_data.hasOwnProperty(formatted_date))) {
                    events_data[formatted_date] = new Array();
                }
                item.gd$when[0].displayTime = $.datepicker.formatDate('MM d, yy', new Date(item.gd$when[0].startTime));
                events_data[formatted_date].push(item);
            }
        });
        displayEvent(new Date());
        $('#my-datepicker').datepicker("refresh");
    }
});

The issue is that Internet Explorer handles timezone conversion differently than other browsers. It applies the user’s local timezone when parsing the date strings from Google Calendar, but the calendar data isn’t in local time.

I heard about using a ctz parameter for custom timezone handling in the API call, but documentation seems sparse. Has anyone dealt with this IE timezone issue before? What’s the best way to ensure consistent date handling across all browsers when working with Google Calendar feeds?

had the same ie headache last year. try manually adding the timezone offset before parsing - something like new Date(item.gd$when[0].startTime + 'Z') worked for me to force utc interpretation. ie’s date parsing is just broken compared to other browsers.

Dealing with IE timezone quirks manually is a nightmare. Been there, done that, got the t-shirt.

Here’s what actually works: move your calendar sync to a proper automation platform. Skip the browser headaches entirely and pull Google Calendar data server-side where timezones behave predictably.

I built something like this with Latenode - calendar sync runs as a scheduled workflow. Grabs events from Google Calendar API, fixes all the timezone mess, then sends clean JSON to the frontend. IE can’t screw it up because it just gets pre-processed data.

The workflow uses real timezone libraries instead of trusting browser date parsing. You also get automatic retries when APIs hiccup and can easily add caching or multiple calendars.

Your jQuery datepicker just eats the clean data without caring what browser it’s on. Way cleaner setup.