Is it always necessary to have table column headings?

Is this "lesson logger" UI clear enough to understand without table headings?

I'm trying to improve my user interface for users recording lessons. Previously there was one button that was "schedule lesson" but we quickly found out there were two 'actions' people wanted to take, either scheduling a lesson in the future, or one that had already happened. The lessons were also just in a big list ordered by date.

One problem we had was once a lesson has actually happened the user has to "confirm" it, to make sure all the planned details are correct (edit the times if they overrun, and fill in a report etc).

It wasn't clear to users they had to perform this action, especially when they were creating a lesson that already happened. They had to schedule a lesson, then "confirm" it as two separate actions.

So I've split up the tables of lessons into three distinct sections:

  1. One for scheduled lessons (top). Here a user has a distinct button for creating future lessons.
  2. One for completed lessons, these would be lessons that were scheduled but are now in the past so need confirming. Here there's a distinct button for creating lessons that have already happened. These will be automatically completed when they're created.
  3. One for historic/confirmed sessions. These require no action, but haven't yet been invoiced/paid for etc so are still of interest.

enter image description here

On the face of it this is more complex than the original table, and to keep it clean and simple I have omitted the headings to the table. Is it clear enough that it's the date, time, duration, and price of the lesson without headers? Is there any way I can make it clearer to the user without introducing a confusing amount of clutter to the UX?

Edit:

Here's a version with headers, left aligned (looks much better). Moved buttons to the right. I might make them more link-like rather than bit square buttons:

enter image description here

The fee doesn't actually apply to the top two sections, it's not calculated until the lesson is confirmed so there's more space for the edit and confirm buttons. Will be a pain trying to get the cells to line up though!

Experimenting with numbering to try show there's a flow from scheduled lessons through to payed lessons.