You need to cross join the calendar with the list of servers, like this:
;WITH Calendar AS (
SELECT
Server_range.ServerName,
Today = d.d,
Tomorrow = DATEADD(DAY, 1, d.d)
FROM dbo._dates d
CROSS APPLY (
SELECT
CAST(MIN(starttime) AS DATE) AS Range_Start,
CAST(MAX(starttime)+1 AS DATE) AS Range_End
FROM dbo.cannedbackupjobs
) date_range
CROSS APPLY (
SELECT ServerName
FROM dbo.cannedbackupjobs
GROUP BY ServerName
) Server_range
WHERE d.d >= date_range.Range_Start
AND d.d < date_range.Range_End
)
SELECT c.Today, j.StartTime, c.ServerName, j.SizeTB
FROM Calendar c
LEFT JOIN dbo.cannedbackupjobs j
ON j.ServerName = c.ServerName
AND j.StartTime >= c.Today
AND j.StartTime < c.Tomorrow
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden