Use an sql query to split the event into multiple events, one for each day. Then you can alter the times depending on whether the event begins or ends on that day, so it takes up the full day on the schedule as you are trying to accomplish. This is the code I used in my sql query in order to achieve this. I know this is an old question, but hopefully it will help someone.
WITH n(n) AS
(
SELECT ROW_NUMBER() OVER (ORDER BY [object_id])-1 FROM sys.all_columns
),
d(n,s,e,dd,et) AS
(
SELECT n.n, d.StartTime, d.EndTime,
DATEDIFF(DAY, d.StartTime, d.EndTime),
DATEADD(DAY, -1, DATEADD(DAY, 1, DATEADD(DAY, n.n,
StartTime)))
FROM n INNER JOIN
(
SELECT '2020-12-21 12:00:00.000' AS StartTime,
'2020-12-26 14:00:00.000' AS EndTime
) d
ON d.EndTime >= DATEADD(DAY, n.n-1, d.StartTime)
)
SELECT
new_from_date = CASE n WHEN 0 THEN s ELSE DATEADD(Hour, 8, Convert(datetime, Convert(date, et))) END,
new_to_date = CASE n WHEN dd THEN e ELSE DATEADD(Hour, 19, Convert(datetime, Convert(date, et))) END
FROM d WHERE dd >= n