I’m a bit of an Airtable newbie, and you may have solved this already(?), anyway…
What’s the structure you’ve set up to support this? (Bases/tables)
Airtable doesn’t link on primary keys - this is where it differs from a database - you need to create a linked record field in order to link records in different tables (and it can’t be on the primary field), and then use Lookup fields as needed.
So, say you have a table of participants, you could link them to programmes. With a linked record in place you can then use a Lookup field to assign a programme to a participant or vice versa.
You also need a programme attendance table as well. Use Linked Record fields to link to the particpant, and to the programme, and record their start and end date on that programme in the programme attendance table.
You need another table for programme events, and this needs to link to the programme table. (Assuming the events are related to programmes.)
Tracking the events the participants attend - again, a linked record in the participant table to the event table. The nuances of this will depend on whether you need to record the date of attendance for each event, etc.
Filling in the information (at different time points) would be (realtively) easily accomplished providing the people who input the data are Airtable collaborators. if you are looking to do this via a form so that those who input don’t need an Airtable account then I think this will be much more complex to achieve. Perhaps in the first phase of development you could set that requirement aside and eg gather info via a spreadhseet for those with collaborator permissions to add?
I haven’t got my head around updating existing records via a form, and I don’t ‘think’ that’s actually what you want. it seems that you want to add a new record eg a new event, new programme with their start date. Though I can see that end date is effectively an edit…
Anyway, this is the limit of my knowledge - I hope it’s of some use, and am sure if I’ve stated anything incorrect someone will come along and correct it