Resolved in a strange way. I've been experimenting a bit and when I changed the statement
var obj = {TYPE: item.getTitle(), DATE: item.getAllDayStartDate()}
to this:
var obj = {TYPE: item.getTitle(), DATE: (item.getStartTime() + (3 * HOUR))}
I didn't get the (wrong) start time + 3 hours, which would put the event at the correct date. Instead I now get the correct date and time, including the deviation from UTC time as 'GMT+0100'. This is what I originally wanted. Maybe adding an amount of time to the result of item.getStartTime() implicitly converts the result to local time???