Tested in SQL 2008 R2 and worked fine. Change the table and columns matching to yours. You could use CTE to make it better if you suffer from performance.
select distinct cast(eventdate as date) ,
MIN(eventdate) OVER(PARTITION BY (cast(eventdate as date))) as intime,
MAX(eventdate) OVER(PARTITION BY (cast(eventdate as date))) as outtime,
cast((MAX(eventdate) OVER(PARTITION BY (cast(eventdate as date))) - MIN(eventdate) OVER(PARTITION BY (cast(eventdate as date)))) as time) as totaltime
from eventdates