• I reckon this does it:

    SELECT mx.Ticket_Closed_Date, mx.Interval, op.*

    FROM ( -- create a matrix containing all intervals from Tijdsintervallen and all dates from Tussen_Tickets

    SELECT *

    FROM Tijdsintervallen

    CROSS JOIN (

    SELECT DISTINCT Ticket_Closed_Date = CAST(Ticket_Closed_DateTime AS DATE)

    FROM Tussen_Tickets

    ) d

    ) mx

    OUTER APPLY (

    SELECT tt.Event_Channel,

    DVBIntern = SUM(tt.DVBIntern),

    DVBExtern = SUM(tt.DVBExtern),

    Tijdsduur = SUM(tt.Tijdsduur),

    WrapUp = SUM(tt.WrapUp),

    OnHold = SUM(tt.OnHold),

    Talk = SUM(tt.OnHold),

    RowsAggregated = COUNT(*) -- not in spec but handy to have

    FROM Tussen_Tickets tt

    CROSS APPLY (

    SELECT

    Ticket_Closed_Time = CAST(Ticket_Closed_DateTime AS TIME(3)),

    Ticket_Closed_Date = CAST(Ticket_Closed_DateTime AS DATE)

    ) ta

    WHERE ta.Ticket_Closed_Time BETWEEN mx.beginTijdsinterval AND mx.eindTijdsinterval

    AND Ticket_Closed_Date = mx.Ticket_Closed_Date

    GROUP BY ta.Ticket_Closed_Date, tt.Event_Channel

    ) op

    ORDER BY mx.Ticket_Closed_Date, mx.Interval, op.Event_Channel

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    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