thanks for the pointers.
Dundas is a no go ATM - we are redeveloping a product and it needs to use vanilla RS, then we will offer consultancy, fleshing them out. We have a legacy product which has over 500 report type pages!!!
Anyway, got it pretty much done now, though it is abit basic. I used a table function to return days, hours, 0 and 30 minute rows to structure the matrix
day, hour, minute, datetime
2,8,30, 1900/01/01 08:30.000
2,9,00, 1900/01/01 09:00.000
2,9,30, 1900/01/01 09:30.000
I then left outer joined to the above on the day and between the lesson start and end (with a little hacking for lessons that start at 1045), creating a txt string of start/end/room/tutor etc
Finally i can run an update where there are duplicate day/hour/minute rows and concatenate the txt together (eg 9-1015 Engl01 R101, 1015-1100 MATH03 R209). Rough looking with not the best dataset: