Query firestore array of objects
This is not possible with your document structure. You can't target array elements in queries. Instead, you may want to store the max startTime as a top-level field in the document, and use that instead in your queries instead.
Duplicating data like this to suit your queries is common. With NoSQL databases, the structure of your data should always follow the queries you intend to make.
You can get the whole document by querying firebase with "array-contains", but you must search for the exact properties of the object and the exact object itself. In your case "endTime" and "startTime".
firebase.firestore.collection('events').where("date", "array-contains", {endTime: "March 18 ....", startTime: "March 19 ...."})