Cita: pero no comprendo cual es el problema.
Pues según los errores los índices no coinciden, ¿así o más claro?
Además en el código inicial jamás se ve donde inicializas la variable $calendario, tampoco verificas la existencia/creación del segundo nivel de datos, etc.
En fin, deberías habilitar el reporte de errores y ver que resulta.