Giriş
- Veri ve teknolojiyi doğrudan sahiplenmeyi amaçlayan serinin ilk bölümünde, kendi kendine barındırılan bir takvim çözümünün nasıl entegre edileceği anlatılıyor.
- Sık seyahat nedeniyle program yönetimi karmaşık hale geliyor ve mevcut takvim sistemlerindeki rahatsızlıkları çözmek için özel bir çözüm kuruluyor.
Gereksinimler
- Program, iş takviminde engelleyici öğe olarak görünmeli.
- Eşi takvime abone olabilmeli.
- Etkinlikler yalnızca bir kez girilebilmeli.
- Birden fazla cihazdan düzenlenebilmeli.
- Veriler tamamen kontrol edilebilmeli.
- Sorun, iş takviminin eşle paylaşılması yoluyla çözülememeli.
Önceki çözüm
- Mevcut takvim paylaşım çözümleri ortak bir platform gerektiriyor veya sınırlı özellikler sunuyor.
- Başlangıçta YAML dosyalarıyla takvim etkinlikleri yazıp bunları ICS dosyalarına dönüştürerek paylaşma yöntemi kullanılmış, ancak bakım zorlaşmış.
Mimari
- Birden fazla cihazda takvimi yönetebilmek için CalDAV sunucusu kullanan bir çözüm kuruluyor.
- Çeşitli veri kaynaklarına bağlanarak etkinlikleri otomatik güncelliyor ve bunları ICS dosyası olarak sunuyor.
Baïkal kurulumu
- Baïkal kullanılarak bir CalDAV sunucusu kuruluyor ve Docker Compose ile kolayca dağıtılıyor.
- nginx reverse proxy kullanılarak web üzerinden erişilebilir hale getiriliyor.
Etkinlik sınıflandırma şeması kurulumu
- Etkinlikleri sınıflandırmak için iCalendar'ın
CATEGORIES özelliği kullanılıyor ve Python enum ile veri modeli yazılıyor.
- Bu sayede etkinlikler kolayca aranabiliyor veya renkle ayırt edilebiliyor.
Takvimi derleme ve paylaşma
- IMAP, API, ICS dosyaları vb. üzerinden etkinlikler otomatik olarak alınıp Baïkal'a ekleniyor ve ardından ICS dosyasına dönüştürülerek web'de paylaşılıyor.
- Güncellemeler için her 15 dakikada bir çalışan cron işi ayarlanıyor.
İş takvimiyle paylaşım
- Google Script Engine kullanılarak etkinlikler iş takvimine kopyalanıyor ve
CATEGORIES özelliğine göre renk kodlaması uygulanıyor.
Sonuç
- 6 aylık testlerin ardından sistemin iyi çalıştığı ve seyahat planlarını yönetmede büyük yardım sağladığı görülüyor.
- Aylık 100 dolar sunucu maliyeti olsa da, program yönetimindeki kolaylık nedeniyle bunun yeterince değerli olduğu düşünülüyor.
1 yorum
Hacker News görüşleri
CalDAV karmaşık ve sezgisel değil. Radicale'ı denedim ama memnun kalmadım. Kişisel olarak bir CalDAV sunucusu uygulamaya çalıştım ama vazgeçtim
Radicale, Python ile yazılmış modüler bir CalDAV sunucusu olarak tavsiye edilebilir
Kişisel sunucumda Mailcow(SoGO) ve Fastmail kullanıyorum. İki takvim iyi senkronize olmuyor
2000'lerin başında Mozilla Sunbird kullanarak bir Win2k sunucusunda takvim barındırıyordum. Sanırım o zamanlar CardDAV yoktu
Baikal'ı birkaç yıldır kullanıyorum ve stabil
Fotoğraflar için bir özellik geliştirmek istiyorum. Dropbox ve Google'dan uzaklaşmak istiyorum
Outlook ile Google Calendar'ı HTTP üzerinden senkronize etmek güvenilir değil
Baikal ilginç görünüyor. Geçmişte DAViCal kullandım ama iOS sürümü değişince güvenilir olmaktan çıktı
Son zamanlarda cloud'dan çıkmaya çalışma içindeyim. Veri migrasyonu 2 hafta sürdü ve beklediğimden daha iyi çalıştı
Sunucusuz olarak DecSync kullanmanın bir yolu da var. Thunderbird veya Evolution, Android uygulamasıyla senkronize oluyor