### Apache Airflow version

2.4.2

### What happened

Create a DAG and set the schedule parameter using a CronTriggerTimeTable instance. Enable the DAG so that there is DAG run data. Try to access the Calendar View for the DAG. An ERR_EMPTY_RESPONSE error is displayed instead of the page.

The Calendar View is accessible for other DAGs  that are using the schedule_interval set to a cron string instead.

### What you think should happen instead

The Calendar View should have been displayed.

### How to reproduce

Create a DAG and set the schedule parameter to a CronTriggerTimeTable instance. Enable the DAG and allow some DAG runs to occur. Try to access the Calender View for the DAG.

### Operating System

Red Hat Enterprise Linux 8.6

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

Airflow 2.4.2 installed via pip with Python3.9 to venv using constraints.

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

restriction = TimeRestriction(dag.start_date, dag.end_date, False)
            dates = collections.Counter()
            if isinstance(dag.timetable, CronDataIntervalTimetable):
                for next in croniter(
                    dag.timetable.summary, start_time=last_automated_data_interval.end, ret_type=datetime
                ):
                    if next is None:
                        break
                    if next.year != year:
                        break
                    if dag.end_date and next > dag.end_date:
                        break
                    dates[next.date()] += 1
            else:
                while True:
                    info = dag.timetable.next_dagrun_info(
                        last_automated_data_interval=last_automated_data_interval, restriction=restriction
                    )
                    if info is None:
                        break
                    if info.logical_date.year != year:
                        break
                    last_automated_data_interval = info.data_interval
                    dates[info.logical_date] += 1
            data_dag_states.extend(
                {"date": date.isoformat(), "state": "planned", "count": count}
                for (date, count) in dates.items()
            )
        now = DateTime.utcnow()
        data = {