I don't think what you need is possible using the built-in iCal feed and a single event - not without writing an extension.
However, perhaps @petednz-fuzion can chime in on the status of his yet-to-be-published extension which I think will meet your needs. You could create three events, use the extension to ensure that there's a single registration for all ...
Though this question is a bit older: We have made very good experience with Calderaforms together with the Caldera Forms CiviCRM integration Plugin mentioned above. However at some point we needed a bit more and thanks to the help of Jaap from CiviCoop there is now also a integration of Caldera Forms with the CiviCRM Form Processor ready allowing more ...
You'll need to upgrade CiviCRM. WP 5.5 made changes to how URL paths are handled which required changes in CiviCRM. I believe those changes were introduced in 5.26. So you will need to upgrade to at least that version to be compatible with WordPress 5.5+.
There was a blog post a while back with more details:
You can go one better than syncing to roles using the CiviCRM Groups Sync plugin instead. It keeps Contacts in CiviCRM Groups in sync with WordPress Users in groups provided by the Groups plugin. That way you are free to adjust your users' roles without affecting the sets of permissions that they have which are related to CiviCRM or member-only content.
You need to enable a setting that allows Profile submissions from external sites for this option to be visible.
To do this go to Administer >> System Settings >> Misc and look for "Accept profile submissions from external sites"
I have had a similar problem with a WordPress install. In my case the Anonymous role of WordPress missing.
The Wordpress roles can be checked with
wp role list
I created the new role with
wp role create anonymous_user 'Anonymous User'
Take a look at CiviCRM ACF Integration which will sync Civi data into WP. Then you can handle displaying the data using various WP methods. It's in early stages but there's lots of room to grow... Let WP display content and Civi manage contacts.
I just came across this page, with a similar issue.