KamoCRM

Sincronizarea reală a calendarului și a contactelor — Google, Microsoft 365, iCloud, CalDAV/CardDAV

FeatureEmailService
Shipped
15 noiembrie 2026 la 10:00 UTC
Author
Kamo
Commit
3b85588

Setări › E-mail › CalDAV/CardDAV a salvat conexiunile externe și a afișat "Ultima synced" pentru o sincronizare care nu a preluat nimic (lucrările DaemonService au lovit contoarele și a marcat totul ca IDLE; clasele furnizorilor erau TODO-uri) Le sincronizează pentru real (groupware / sync): - CalDAV / CardDAV: descoperire (adresa → principal → acasă set → colecții, cu /.fallback bine cunoscut, o adresă de calendar unic lipită funcționează), CTag/sync-token check, calendar-query ETag listare (ultimele 366 de zile), multiget de ceea ce sa schimbat, PUT/DELETE cu If-Match/If-None-Match. iCloud își setează adresele implicite. - Google Calendar + Oameni, Microsoft Calendare grafice + contacte pe care le acordați /oauth stochează fluxul; token-urile reîmprospătate (și token-urile de reîmprospătare rotate păstrate) cu un Scrieți că înlocuiește doar blobul exact pe care l-a actualizat. - Teren de evenimente prin IcsImportService.upsert (serii, excepții, EXDATEs) și Contacte prin ContactService + ContactDetailStore — fără invitații, fără Memento-uri, nici un tabel brut scrie. - Contabilitate pe colecție / element (tabele noi groupware_sync_*) oferă actualizări, Ștergeri și în ambele sensuri: trageți mai întâi (copia exterioară câștigă un egal), apoi împingeți Kamo Editează/creează/șterge atunci când integrarea este bidirecțională și colecția Gardieni: nimic eliminat dintr-o listă eșuată sau suspect de goală, nimic Kamo nu a importat, nimic care a îmbătrânit doar din fereastră; o trecere care ar șterge cea mai mare parte a unei colecții acolo este refuzată. - Starea este onest: SINCRONIZAREA în timp ce rulează, IDLE + lastSyncedAt numai după o perioadă completă fetch, ERROR + plain-words errorMessage altfel; scris coloană-cu-coloană astfel Per-colecție lastError și numărătoarea erorilor sunt în ordinea în care au apărut Setările utile (syncSupported, calendarsSynced, eventsSynced, Adresa de e-mail (addressBooksSynced, contactsSynced, collections[]). - Programare: **************** (ceasul DaemonService) și /integrations/{id} (Sincronizează acum prin daemon.sync.trigger, local fallback fără NATS); per-integrare SingletonTaskRunner lease astfel încât podurile nu se dublează niciodată. - Conexiunea de testare se conectează acum și se listează; rândurile de membri înregistrează organizația lor; Ștergerea unei integrări detașează (păstrează) ceea ce a fost sincronizat; Trebuie să fie https la o gazdă publică (fără cluster/SSRF); acreditările nu sunt înregistrate niciodată. - S-au eliminat stuburile furnizorilor de TODO morți și reîmprospătările lor neutilizate.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing