It's a simple hash-table with two (optional) values, one for the DateTime and one for the TimeZone, with both being strings. Basically, what you already have in $prop above. There is no need to cast it into any other object type
Here's a simple example of using it with the cmdlet:
New-MgBookingBusinessAppointment -BookingBusinessId xxxxxxxxxxxxxxxx -StartDateTime @{"DateTime" = "2025-05-01T11:30:00.0000000Z";"TimeZone" = "UTC"} -EndDateTime @{"DateTime" = "2025-05-01T12:30:00.0000000Z";"TimeZone" = "UTC"} -ServiceId 9a69b01f-4474-4de1-b8d5-75e46776929f