Cron Job for Expired Events

I have a customer that wants me to make a cron job to change state of Events.
So for example 1 day after ‘stop date’ he want them to change state to ‘Finished’ (or similar).

Is there any (better) way of doing this, main idea is that ‘some groups’ can not longer see/access the content.

Can it be done with workflow (or something else) ?

I think GitHub - collective/collective.autopublishing: Automatically publish/retract content when publication/expiry dates occur. could suit your needs.

Last commit was 4 years ago, do you know if it ‘works’

In case you want to use the script route see the base template:

We still use it in Plone 6.1.

Although the control panel has some bugs, it doesn't affect us as we configure it via profiles imio.smartweb.policy/src/imio/smartweb/policy/profiles/default/registry/autopublishing.xml at main · IMIO/imio.smartweb.policy · GitHub