OK, this is getting cleaner to me now. Thanks for writing it verbosely!
On the NC side, you need rather thorough permissions and rights: You want the users Alice/John/Tracy not to be aware of NC. So, they will not be able to share their calendar (writable) to Omega. Also it is not possible to let the users create tokens using the login flow per user.
Shared calendars from Omega
One solution you mentioned already is to let the App create one calendar for Omega per User and share them (read-only ?) with the users. This has the benefit that all can be handled rather straight forward, form Omega’s perspective, it is just a simple (“own”) event and the other users (Alice&Tracy) will see the event also as their own events.
The complexity will be in creating the calendars for Omega programmatically and keeping the sharing in sync. It feels to me like a bunch of hassle, to be honest.
Create an NC app accessing the calendars
You could create a custom app (NC internal) as a companion to your App. It would have a REST (or OCS) api, that would allow you to access all the various calendars using PHP. You weould have to setup some authentication so that only your App can access the endpoints.
From there, you could directly modify all the calendars of the users (Alice/Tracy) and make the events appear “out of nowhere”.
Note however, that the calendars are owned by these users. Thus, they could alter/delete the events anytime. You would either have to notify the other (e.g. if Alice falls ill, she might simply remove the event, Tracy must be notified of this eventually?) or plainly ignore it (its your data, you should know what you are doing).
Reference docs
Create event invitations by mail
You could use Omega and the ICS way to add attendees to the event. Then, it becomes obvious that the event is owned by Omega and the users are getting only notifications. However, the users might decide to reject the events or suggest other times. These returned information will be directed at Omega thus you might to have to cope with this.
On the pro side, you might not even need the NC integration for all users as you could simply use their own mails and their own calendars (be it google, MS, …).
Structure of an ICS with invitations
I tested the ICS on my dev environment to invite an internal user and an external user by mail. It just sent a PUT request to the WebDAV server to create the event. The rest was handled by NC server as far as I can tell. The ICS was
BEGIN:VCALENDAR
PRODID:-//IDN nextcloud.com//Calendar app 5.2.0-rc.1//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
CREATED:20250318T114324Z
DTSTAMP:20250318T114626Z
LAST-MODIFIED:20250318T114626Z
SEQUENCE:2
UID:ba5c860c-9ea9-4eb1-badb-b25715af0d64
DTSTART;TZID=Europe/Berlin:20250318T130024
DTEND;TZID=Europe/Berlin:20250318T140024
STATUS:CONFIRMED
SUMMARY:Test
ATTENDEE;CN=admin;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIP
ANT;RSVP=TRUE;LANGUAGE=en:mailto:admin@example.net
ATTENDEE;CN=christian@example.com;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;R
OLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:christian@example.com
ORGANIZER;CN=alice:mailto:foo@example.com
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
Create your own calendars in NC
You can also create/define your own set of calendars when you create an app. Similarly to the default calendar app, you can define your own calendar with your own events and stuff. The communication would again be probably a token based authentication to prevent malicious access.
This is an advanced solution (somewhat) but allows you to get notified once a user tried to modify the events or removed them. You are in control of the events (as part of your own DB) and can thus install custom gatekeepers.
Reference docs (especially note the legacy part)
OK, these are the options, I came quickly up with. Maybe there are more.
Chris