KamoCRM

Gerçek dış takvim ve kişiler senkronizasyonu — Google, Microsoft 365, iCloud, CalDAV/CardDAV

FeatureEmailService
Shipped
15 Kasım 2026 10:00 UTC
Author
Kamo
Commit
3b85588

Ayarlar › E-posta › CalDAV/CardDAV dış bağlantıları kaydetti ve "Son bağlantı" mesajını gösterdi hiçbir şey almayan bir senkronizasyon için "synced" (DaemonService'in işleri sayısalları çarptı ve her şeyi IDLE olarak işaretledi; sağlayıcı sınıfları TODO' lardı) onları gerçekten senkronize eder (groupware/sync): - CalDAV/CardDAV: keşif (address → principal → home set → collections, with /.iyi bilinen bir yedek, yapıştırılmış tek takvim adresi işe yarar), CTag/sync-token check, calendar-query ETag listesi (son 366 gün), değişenlerin multiget, PUT/DELETE with If-Match/If-None-Match. iCloud adreslerini önceden belirler. - Google Calendar + İnsanlar, Microsoft Grafik takvimler + bağlantılar /oauth akış depoları; yenilenmiş işaretler (ve döndürülmüş yenileme işaretleri) bir sadece yenilediği blobu tam olarak değiştiren bir yazı yazın. - IcsImportService.upsert aracılığıyla gelen olaylar (seriler, istisnalar, EXDATEs) ve ContactService + ContactDetailStore üzerinden temaslar — davet yok, hayır Hatırlatmalar, ham masa yazıları yok. - Koleksiyon/nesne başına muhasebe (yeni groupware_sync_* tabloları) güncellemeler verir, silme ve iki yönlü: önce çek (dış kopya eşitliği kazanır), sonra Kamo'ü bas entegrasyon iki yönlüdür ve koleksiyon Defterdarlar: Başarısız veya şüpheli bir şekilde boş bir listede hiçbir şey silinmedi hiçbir şey Kamo ithal edilmedi, sadece pencereden çıkan hiçbir şey; bir geçiş Birçok koleksiyonun silinmesini sağlayacak olan bu teklif reddedildi. - Durum dürüst: çalıştırırken SENCELEMEK, İDLE + lastSyncedAt yalnızca tam yüklendikten sonra fetch, ERROR + plain-words errorMessage aksi takdirde; sütun-sütun yazılmıştır so bir üyenin düzenlemesi geçişin ortasında hayatta kalır. Per-collection lastError ve sayılar ayarların yükünü (syncSupported, calendarsSynced, eventsSynced, addressBooksSynced, contactsSynced, collections[]). - Planlama: **************** (DaemonService'ın saati) ve /integrations/{id} (daemon.sync.trigger üzerinden şimdi senkronize et, yerel yedekleme olmadan) NATS); per-integration SingletonTaskRunner lease so pods never double-run. - Test Bağlantısı şimdi kayıt olur ve listeler; üye satırları örgütlerini kaydeder; bir entegrasyonu silmek senkronize edilmiş olanları ayırır (saklar); dış adresler halka açık bir sunucuya https olmalı (kluster/SSRF ulaşılamaz); kimlik bilgileri asla kaydedilmez. - Ölü TODO sağlayıcıları ve kullanılmamış güncellemeleri kaldırıldı.

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