After some initial confusion (answers by me and Andy E and mainly my comments to his answer) which you probably missed anyway, I discovered what seems to be the real cause of your problem.
The plugin internally uses the same code of the parseISO8601
function which was proposed by Andy E that comes from Parsing W3C's ISO 8601 Date/Times in JavaScript.
But although Andy E states that that code works without problems, the fullcalendar plugin, which uses that code too, seems to have a bug.
After looking more closely at the code, I noticed that the plugin seems to ignore the timezone you are in.
Compare these code snippets
Snippet from original code from delete.me.uk
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}
Code from fullcalendar.js
if (!ignoreTimezone) {
if (m[14]) {
offset = Number(m[16]) * 60 + Number(m[17]);
offset *= m[15] == '-' ? 1 : -1;
}
offset -= date.getTimezoneOffset();
}
As you can see the plugin only handles the timezone if ignoreTimezone
is set to false. But that simply is never the case. parseISO8601()
in this plugin is always called with ignoreTimezone
set to true.
Thus I bet the bug comes from this and you should consider contacting the author of the plugin. But first you should verify if the date gets parsed correctly if you set ignoreTimezone
to false in the plugin code