The solution that worked:
I had to create two additional fields.
The first additional field is "StartTime_totext" and it is a text field whose value is set to the value of the "StartTime" field.
The second additional field is "StartTime_removeTZ" whose value is set to substring(StartTime_totext, 1, 8) which therefore cuts off the value at 8 characters (thereby removing the time zone information).
Finally, my original TimeCalc field value is now set to addSeconds(StartTime_removeTZ, -1800) which subtracts 30 minutes from the StartTime.
The two additional fields are set to 0 px width so that they are invisible.