Maybe something like this
Calendar locations are hard coded from your input sheet
It's easy enough to add a CSV export feature to save the CSV sheet as a separate file, but since this looked like a once a year thing, you can also do it manually
Option Explicit
Sub ExportToGoogleCalendar()
Dim iMonthCol As Long, iMonthRow As Long, iWeek As Long, iDay As Long
Dim iOut As Long
Dim wsCal As Worksheet, wsCSV As Worksheet
'setup
Application.ScreenUpdating = False
Set wsCal = Worksheets("2020 Calendar") ' could be Activesheet
'add new CSV sheet
Application.DisplayAlerts = False
On Error Resume Next
Worksheets("CSV").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Worksheets.Add.Name = "CSV"
Set wsCSV = Worksheets("CSV")
'put headers on CSV sheet
iOut = 1
wsCSV.Cells(iOut, 1).Resize(1, 9).Value = Array("Subject", "Start Date", "Start Time", "End Date", "End Time", "All Day Event", "Description", "Location", "Private")
iOut = iOut + 1
'make the list
With wsCal
For iMonthRow = 3 To 30 Step 9
For iMonthCol = 2 To 18 Step 8
For iWeek = iMonthRow + 2 To iMonthRow + 7
For iDay = iMonthCol To iMonthCol + 7
If Len(.Cells(iWeek, iDay).Value) > 0 Then
If .Cells(iWeek, iDay).Interior.Color = 5296274 Then
wsCSV.Cells(iOut, 1).Value = "Dad"
ElseIf .Cells(iWeek, iDay).Interior.Color = 16777215 Then ' colors are inconsistent
wsCSV.Cells(iOut, 1).Value = "Mom"
ElseIf .Cells(iWeek, iDay).Interior.Color = 15773696 Then
wsCSV.Cells(iOut, 1).Value = "Mom"
End If
wsCSV.Cells(iOut, 2).Value = .Cells(iWeek, iDay).Value
wsCSV.Cells(iOut, 4).Value = .Cells(iWeek, iDay).Value
wsCSV.Cells(iOut, 6).Value = True
wsCSV.Cells(iOut, 9).Value = True
iOut = iOut + 1
End If
Next iDay
Next iWeek
Next iMonthCol
Next iMonthRow
End With
'cleanup
wsCSV.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit
Application.ScreenUpdating = True
MsgBox "Done"
End Sub