Without using \tabular so that the text can be broken line-by-line when changing page.
My attempt with tabular was this (I realized later this isn't breakable) :
\definecolor{darkred}{RGB}{128,0,0}
\newcommand{\expEntry}[4]{%
\begin{table}[H]
\raggedright
\begin{tabular*}{\textwidth}{L{0.6cm}| @{\extracolsep{\hspace{0.35cm}}} l @{\extracolsep{\fill}} r}
& \textbf{#2} & \footnotesize\addfontfeature{Color=lightgray} #3 \\
\rotatebox[origin=c]{90}{ \addfontfeature{Color=darkred} #1} &
\multicolumn{2}{l}{
\begin{minipage}[t]{0.94\linewidth}
#4
\end{minipage}
} \\
\end{tabular*}
\end{table}
}
\expEntry
{June 2018 until May 2019}
{Roses are red}
{Violets are blue}
{
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nunc non blandit massa enim nec dui nunc.
\begin{itemize}
\item At risus viverra adipiscing at in tellus integer feugiat. Tempus imperdiet nulla malesuada pellentesque elit eget.
\item Proin sed libero enim sed faucibus turpis. Viverra aliquet eget sit amet tellus.
\item Felis bibendum ut tristique et egestas quis. Venenatis lectus magna fringilla urna porttitor rhoncus.
\item Turpis massa sed elementum tempus egestas. Arcu cursus euismod quis viverra nibh cras.
\item Neque convallis a cras semper auctor. Purus semper eget duis at tellus at urna condimentum mattis.
\item At risus viverra adipiscing at in tellus integer feugiat. Tempus imperdiet nulla malesuada pellentesque elit eget.
\item Proin sed libero enim sed faucibus turpis. Viverra aliquet eget sit amet tellus.
\end{itemize}
}
Nevermind the left margin on the picture, it's because it's embedded in a minipage justified at the right on the picture. I want it to be \textwidth wide.
EDIT (in response to @NBur): Is it possible to not repeat the title nor the date after a page break in the middle of the text? Besides, it seems there's a "glitch" (blue circle at the left of the picture below) where depending on the zoom, the part of the vertical line facing the title disappears. It seems because this part of the line is less thick, I wonder why? A package bug perhaps?
tcolorbox
ormdframed
?