How do I prevent DateTime from including zone offset in SOAP xsd:dateTime element?

I suspect your endDate value has the Kind property set to DateTimeKind.Local.

You can change this to DateTimeKind.Unspecified as follows:

endDate = DateTime.SpecifyKind(endDate, DateTimeKind.Unspecified)

after which I believe it will be serialized without the timezone offset.

Note that you will get a DateTime with DateTimeKind.Local if you have initialized it using DateTime.Now or DateTime.Today, and DateTimeKind.Utc if you have initialized it using Datetime.UtcNow.