Ja. Dit kan behoorlijk compleet worden gebouwd, inclusief tweerichtingssync tussen Google Agenda en Google Sheets.
De beste architectuur is:
Google Agenda ⇄ Apps Script ⇄ Google Sheet ⇄ PadelOS/webapp
Daarmee kan iemand gewoon in Google Agenda plannen, slepen, tijden aanpassen, afspraken verwijderen enzovoort, terwijl de Sheet automatisch wordt bijgewerkt. Andersom kunnen nieuwe boekingen vanuit de Sheet of jouw webapp via Apps Script als echte Google Calendar-events worden aangemaakt.
Google Apps Script heeft hiervoor zelfs een specifieke installable trigger: onEventUpdated(). Die wordt geactiveerd wanneer een agenda-item wordt aangemaakt, gewijzigd of verwijderd. De trigger vertelt niet direct welk evenement veranderd is; Google adviseert daarom een syncToken te bewaren en vervolgens een incrementele synchronisatie via de Advanced Calendar Service te doen. Daarmee krijg je alleen de evenementen terug die sinds de vorige synchronisatie veranderd zijn.
synchroniseren van dergelijke events.
Ik zou uiteindelijk niet één enorme agenda maken, maar meerdere agenda's onder één engine:
PADELOS CALENDAR ENGINE
Google Calendar
│
├── Padellessen
├── Trainers
├── Banen
├── Toernooien
├── Clubactiviteiten
├── Beschikbaarheid
├── Vervanging
└── Privé / blokkades
↕
CALENDAR ENGINE
↕
Google Sheet
│
├── EVENTS
├── BOOKINGS
├── LESSONS
├── PLAYERS
├── TRAINERS
├── LOCATIONS
├── COURTS
├── AVAILABILITY
├── EVENT_HISTORY
├── EVENT_PARTICIPANTS
├── SYNC_STATE
└── AUDIT_LOG
↕
PadelOS
Dan kun je bijvoorbeeld in één Google Agenda zien: