I am preparing the academic calendar for my institution. It typically looks like the following:

As you can see, I need to create 24 tables like this. I will create tabular to fit the data. Each table will contain around 28 - 36 rows. What I am looking here for is to be able to modify the \arraystretch component automatically so that the total table height is same as the \textheight. I do not want to use the resizebox or adjustbox as it will mess with the font size in each page. The following MWE contains the information about the font and page sizes, and is motivated from this answer to my question posted earlier.
\documentclass[9pt, twoside]{scrartcl}
\usepackage[cmyk]{xcolor}
\usepackage[paperwidth=108mm, paperheight=140mm, top=15mm, bottom=15mm, left=15mm, right=15mm, foot=2.5mm, head=2.5mm, showframe, marginparsep=0mm]{geometry}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{titlesec}
\makeatletter
\titleformat{\section}[runin]{}{}{0pt}{@gobble}
\titleformat{\subsection}[runin]{}{}{0pt}{@gobble}
\makeatother
\titlespacing{\section}{0pt}{-\baselineskip}{0}
\titlespacing{\subsection}{0pt}{-\baselineskip}{0}
\usepackage{fancyhdr, extramarks}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\fancyhead[LE]{\color{cyan}\leftmark~|~\lastrightmark~|~Academic Calendar 2022-23}
\fancyhead[RO]{\color{cyan}Academic Calendar 2022-23~|~\lastrightmark~|~\leftmark}
\usepackage{hyperref}
\usepackage{ragged2e}
\usepackage{array, longtable}
\parindent0pt
\parskip0pt
\usepackage{etoolbox}
\newcounter{magicrownumbers}
\newcommand\Rownum{\stepcounter{magicrownumbers}\ifnum\value{magicrownumbers}<10 0\fi\arabic{magicrownumbers}}
\preto\table{\setcounter{magicrownumbers}{0}}
\preto\tabular{\setcounter{magicrownumbers}{0}}
%
%
%
\newcount\myjdate
\newcount\myweekday
\newcounter{tmpmyjdate}
\newcounter{tmpmyweekday}
\usepackage{pgfcalendar}
\def\wday#1{%
\pgfcalendardatetojulian{#1}{\myjdate}%
\setcounter{tmpmyjdate}{\the\myjdate}%
\pgfcalendarjuliantoweekday{\thetmpmyjdate}{\myweekday}%
\setcounter{tmpmyweekday}{\the\myweekday}%
\nwday%
}
\def\nwday{%
\ifcase\value{tmpmyweekday} Mon\or Tue\or Wen\or Thu\or Fri\or Sat\or Sun\fi\relax%
\stepcounter{tmpmyjdate}\relax%
\pgfcalendarjuliantoweekday{\thetmpmyjdate}{\myweekday}%
\setcounter{tmpmyweekday}{\the\myweekday}%
}
\begin{document}
\thispagestyle{empty}
\vspace*{\fill}
\begin{center}
{\Large\color{cyan}Academic Calendar\2022-23}
\end{center}
\vfill
\newpage
\section{July}
\subsection{Sonada}
\begin{center}
\def\arraystretch{1}% <== need to adjust this automatically
\begin{tabular}{rlll}
\Rownum. & \wday{2022-07-01} & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content
\end{tabular}
\end{center}
\newpage
\subsection{Siliguri}
%
\begin{center}
\begin{tabular}{rlll}
\Rownum. & \wday{2022-07-01} & Type & Content\
\Rownum. & \nwday & Type & Content\
\Rownum. & \nwday & Type & Content\
\end{tabular}
\end{center}
%
\end{document}
The MWE is agreeably a little long to provide more information as to avoid any possible clash with the commands or packages.

tabularraypackage. – L.J.R. Jun 21 '22 at 04:41