I noticed that if you build a Custom Dimension using any of the date/timestamp functions, the offset will be applied twice and skewing the time:
EXTRACT(DAY FROM (TIMESTAMP(FORMAT_TIMESTAMP('%F %H:%M:%E*S', TIMESTAMP_TRUNC(CAST(TIMESTAMP(FORMAT_TIMESTAMP('%F %H:%M:%E*S', created_at , 'Europe/Madrid')) AS TIMESTAMP), DAY)), 'Europe/Madrid'))) AS day_of_month,
This is a result of using extract_days(${created_at})
To vote for this to get this prioritized, please click thumbs up on product feature request.
As a whole, seems like the Custom Fields lab is incompatible with users who use Query Time zone.