I’m working on an ASP.NET web application that uses the Google Calendar API to create events. My application is hosted on a server in India, but I have users in South Australia.
The Issue
When I create events from India, everything works perfectly and the times are correct. However, when my Australian clients create events, they appear one hour earlier than expected. For example, if they schedule something for 10:00 AM to 11:00 AM, it shows up as 9:00 AM to 10:00 AM in their calendar.
This seems to be related to daylight saving time in Australia (October to April). Strangely, sometimes the events do get created with the correct time when using iPads or certain computers.
My Current Code
var eventStart = new DateTime(dateValue.Year, dateValue.Month, dateValue.Day, beginTime.Hours, beginTime.Minutes, 00).ToUniversalTime().AddHours(-7);
var eventEnd = new DateTime(dateValue.Year, dateValue.Month, dateValue.Day, finishTime.Hours, finishTime.Minutes, 00).ToUniversalTime().AddHours(-7);
I’m trying to adjust for the time zone difference, but it’s not working consistently during daylight saving periods. Any suggestions on how to fix this timezone handling issue?
You’re hardcoding -7 hours, but that doesn’t work when daylight saving kicks in. Adelaide switches between UTC+9:30 and UTC+10:30, so your fixed offset breaks during DST.
I hit this same issue building a scheduling system for Australian clients. Skip the manual hour math and use proper timezone conversion:
TimeZoneInfo adelaideTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Cen. Australia Standard Time");
var localStart = new DateTime(dateValue.Year, dateValue.Month, dateValue.Day, beginTime.Hours, beginTime.Minutes, 0);
var utcStart = TimeZoneInfo.ConvertTimeToUtc(localStart, adelaideTimeZone);
This handles DST automatically. The weird behavior across devices? Some have updated timezone data, others don’t. TimeZoneInfo fixes that by letting your server handle conversion properly.
I see the problem. Your manual timezone calculations are breaking with DST transitions. Australia’s got multiple DST rules that change every year.
Stop wrestling with timezone math - automate the whole sync process. I built something similar for our global team and learned that manual timezone handling is pure nightmare fuel.
Move this logic completely out of your app. Set up an automated workflow that:
Grabs event data from users
Detects their timezone from browser data
Handles DST calculations automatically
Pushes to Google Calendar with correct timestamps
This kills the device inconsistencies you’re seeing. Different devices have different timezone databases, but centralized automation handles everything the same way.
I use this pattern for all our calendar integrations now. Zero timezone bugs, zero DST headaches. The workflow runs independently and just works.
You can set up this exact automated calendar workflow here: https://latenode.com