How to update the datetime difference between all of the rows of a table? I've got the following table with some data in it:

CREATE TABLE schedules
(
    ID        INT PRIMARY KEY,
    StartTime DATETIMEOFFSET(4)
);

INSERT INTO schedules
VALUES (1, '2020-03-27 08:00:00.000 -05:00'),
       (2, '2020-03-27 09:00:00.000 -05:00'),
       (3, '2020-03-27 10:00:00.000 -05:00'),
       (4, '2020-03-27 11:00:00.000 -05:00');


Currently, the interval of start times is every one hour. I want to run a query to change this interval to every 45 minutes. I tried the following query but it didn't work.

UPDATE r2
SET StartTime = DATEADD(MINUTE, 45, r1.StartTime)
FROM schedules r1 JOIN schedules r2 ON r1.ID + 1 = r2.ID;


Any advice would be appriciated!
WITH cte AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY StartTime) rn FROM schedules)
UPDATE cte SET StartTime = DATEADD(minute, 15*(1-rn), StartTime);


fiddle