Per-client ICS calendar feed, replacing the shared ICS_TOKEN (#22)
Test backoffice (smb-crm) / test (push) Has been cancelled

Each client now gets their own clients.ics_token (lazily generated on
first /owner/settings visit), which both authenticates and scopes
/api/bookings.ics -- closing the gap where any shared-token holder
could view another client's bookings by swapping the client_id query
param. The owner settings page now surfaces a copyable subscribe URL.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 11:55:35 +02:00
parent 319218ce21
commit 24d9aca812
9 changed files with 196 additions and 20 deletions
+3 -2
View File
@@ -46,8 +46,9 @@ In the EA backend (admin login — see `.secrets/easyappointments.txt`), set the
their **provider login** so they manage their own calendar.
## 7. Hand over & go live
- Give them either their **EA provider login** (self-hosted calendar view) or the **iCal feed**
`…/crm/api/bookings.ics?client_id=C-xxxx&token=…` to subscribe in Apple / Google Calendar.
- Give them either their **EA provider login** (self-hosted calendar view) or the **iCal
subscribe URL** shown on their own `/owner/settings` page (per-client token, #22) to add to
Apple / Google Calendar.
- A customer booking now flows: their site → EA → CRM `bookings` → your Telegram.
- Set the **Client → `active`**.