A coaching business has programs that run for a certain number of weeks. While their program is happening, clients can join pre-scheduled group coaching calls, submit questions, and have a one-to-one coaching call each week.
The calendar itself can be fairly simple: a single sub-calendar for each program holds the pre-scheduled group calls and the "appointment slots" where clients can schedule their one-on-one coaching call for the week.
Coaches and staff can view all the program calendars (or the ones relevant to their work). Clients can have access to only their program calendar, via shareable calendar link. When the program has ended, you can revoke their access to the program calendar by deactivating or deleting the link.
A client in the 4-week program would only see that program's sub-calendar:
Create recurring events for coaching calls so you don't have to recreate them for each program.
Besides a link and password for the call, you can include all the relevant materials, notes, instructions, or other helpful information on any scheduled call.
Here's the event page view for one coaching call:
Here's an important consideration: it's important to prevent current clients from getting access to links for future calls (which would occur after their program ends). If you have all the pre-scheduled coaching calls already on the calendar, even into the future, current clients would be able to view those events and could save the call links.
There are two ways you can prevent clients from getting access to future call information.
Method 1: Use Current and Future sub-calendars
In the first method, for each program you'll have two sub-calendars. One would hold the coaching calls for the current program running. The other sub-calendar would for all scheduled calls for future programs.
When a program is beginning, drag all the scheduled coaching calls for the first week (or for all weeks of the program) to the Current calendar.
Clients would be given access to the Current calendar but not to the Future calendar. So they would only be able to access the calls scheduled for the program they're part of, not for future sessions or later programs.
Method 2: Update the call links and/or passwords
In the second method, you can use just one sub-calendar for all the scheduled calls for any program. When a program ends, you can change the call information on future calls so the old link/passwords will no longer work.