docs: def check_calendar_dates(
      feed: "Feed", *, as_df: bool = False, include_warnings: bool = False
  ) -> List:
      """
      Analog of :func:`check_agency` for ``feed.calendar_dates``.
      """
      table = "calendar_dates"
      problems = []
  
      # Preliminary checks
      if feed.calendar_dates is None:
          return problems
  
      f = feed.calendar_dates.copy()
      problems = check_for_required_columns(problems, table, f)
      if problems:
          return format_problems(problems, as_df=as_df)
  
      if include_warnings:
          problems = check_for_invalid_columns(problems, table, f)
  
      # Check service_id
      problems = check_column(problems, table, f, "service_id", valid_str)
  
      # Check date
      problems = check_column(problems, table, f, "date", valid_date)
  
      # No duplicate (service_id, date) pairs allowed
      cond = f[["service_id", "date"]].duplicated()
      problems = check_table(
          problems, table, f, cond, "Repeated pair (service_id, date)"
      )
  
      # Check exception_type
      v = lambda x: x in [1, 2]
      problems = check_column(problems, table, f, "exception_type", v)
  
      return format_problems(problems, as_df=as_df)