Полагаю, вам будет гораздо лучше использовать CSS Сетка для такого типа макета.
Для изучения CSS Сетка Я рекомендую Сетка Сада и Grid Critters (последний имеет плату) gamified учебники. Обе компании также имеют учебники по Flexbox (Flexbox Froggy и Flexbox Zombies, бесплатно)
В любом случае, вот исполняемое воспроизведение вашего макета с использованием Grid:
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
display: flex;
justify-content: center;
background-image: url("https://cdn.pixabay.com/photo/2017/09/14/22/42/milky-way-2750627_960_720.jpg") ;
}
.wrap {
display: flex;
flex-direction: column;
align-items: center;
background-color: white;
border: 1px solid black;
border-radius: 5px;
width: 90%;
padding: 0 10px;
}
.grid {
align-self: stretch;
padding-bottom: 15px;
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 5px;
justify-content: center;
align-items: center;
}
.heading, .col-1 {
display: flex;
align-items: center;
justify-content: center;
}
.heading {
font-size: 1.5em;
font-weight: bold;
padding-top: 10px;
}
.col-1 {
background-color: #D3D3D3;
height: 100px;
border: 1px solid black;
}
.blank {
grid-column: 2 / span 3;
}
<div class="wrap">
<h2>Date</h2>
<div class="grid">
<div class="heading">
H103
</div>
<div class="blank"></div>
<div class="col-1">Period 1</div>
<div class="col-1">Period 2</div>
<div class="col-1">Period 3</div>
<div class="col-1">Period 4</div>
<div class="heading">
H104
</div>
<div class="blank"></div>
<div class="col-1">Period 1</div>
<div class="col-1">Period 2</div>
<div class="col-1">Period 3</div>
<div class="col-1">Period 4</div>
<div class="heading">
H105
</div>
<div class="blank"></div>
<div class="col-1">Period 1</div>
<div class="col-1">Period 2</div>
<div class="col-1">Period 3</div>
<div class="col-1">Period 4</div>
<div class="heading">
H107
</div>
<div class="blank"></div>
<div class="col-1">Period 1</div>
<div class="col-1">Period 2</div>
<div class="col-1">Period 3</div>
<div class="col-1">Period 4</div>
</div>
</div>