这里是一种含蓄虚拟条件句,就是说这个事情本来是没有发生的,但是句中没有明显的表示虚拟的词语出现,要通过上下文来判断.你碰到的这道题目和后面一道是一样的,就是说“本来打算做但是没有做”,这里用be to句型.一般的过去将来是be to do sth.,但是如果后文有明确指出这件事情没有发生的话,就用were/was to have done这种形式表示虚拟.
如果是表示过去可以做一件事而没做,用can have done,如果是有意愿做而没做则是would have done,诸如此类都是这种表示“本来要做但是没做”这种含蓄的虚拟.其实很好辨认,就是后面会有but然后表示没有发生.