What two-way actually requires
Reading a calendar needs a URL. Writing to one needs an authenticated, permissioned connection — OAuth with Google, an app registration with Microsoft — plus token storage, token refresh, and a plan for what happens when the token is revoked. The credential lives in your WordPress database, and it can write to your calendar.
Then comes the genuinely hard part: conflicts. If an event is edited in both places between syncs, something has to decide which version wins. Last-write-wins quietly destroys the other edit. Anything smarter needs a merge policy, per field, that somebody has to define and everybody has to understand.
And deletions are worse. If an event vanishes from one side, is it cancelled, or did a sync fail and return a short list? Get that wrong in a two-way system and it deletes real events from the calendar your staff actually run their week from.
The middleman problem
Because the OAuth setup is beyond most site owners, plugins that offer this usually route the connection through a service the plugin's author runs. That means a third party holds a token that can read and write your calendar, and your sync depends on them staying in business and keeping that service up. Read the privacy policy before agreeing to it — you are granting write access to your organisation's schedule.
The setup that solves the same problem
Ask what the two-way sync is for. In practice, almost always: staff need to add events from wherever they are, and the website must reflect it.
One-way does that completely. Make the external calendar the single place events are created — the phone, Outlook, the shared Google calendar the whole team already lives in — and have the website follow. Staff never touch WordPress. The website is always right. There are no conflicts, because there is only one source.
The thing you give up is creating an event in WordPress and having it appear in Google. Which sounds like a loss until you notice that nobody wants to open wp-admin to add a booking anyway.
Where the other direction is genuinely covered
Publishing an .ics feed from WordPress is the other half, and it is not the same as two-way sync. Anyone — including your own staff — can subscribe to your site's feed in their own calendar app and see everything the website shows. That covers the “I want it on my phone too” need without a single credential changing hands.