Kişisel görev planlayıcı. Aylık takvim görünümü, gün görünümü, "kalanları sonraki güne aktar" akışı ve ayarlanabilir mail bildirimleri. Tüm tarih/saat mantığı Europe/Berlin saat dilimine göre.
Uygulama ?s=<APP_SECRET> ile korunur. Takvim linkini tarayıcıda bu parametreyle aç:
Uygun URL şu şekilde:
https://task-scheduler.val.run/?s=<sırrın>
- Takvim: Gün hücresinde görevler alt alta; sığmazsa hücre içinde kayar. Telefonda sadece görev sayısı + kırmızı nokta görünür. Hücreye tıklayınca gün görünümü açılır.
- Gün görünümü: En altta "Görev ekle" — yaz, Enter'a bas. Görevin solundaki çember done/open değiştirir. Göreve basılı tut (masaüstünde sağ tık) düzenleme ekranını açar. "Sonraki güne →" bugünün açık görevlerini bir gün ileri taşır; "Geri al" son taşımayı iptal eder.
- Düzenleme modu: Sağ üstteki anahtar. Açıkken gün görünümünde görevler
≡tutamağından sürüklenerek sıralanabilir (position kaydedilir, dokunmatik dahil). - Ayarlar (⚙): Bildirim saatleri listesi;
+ekler,−siler (en az 1 kayıt).
tasks:id, date (YYYY-MM-DD), text, position, status (open|done|moved), moved_to_id, moved_from_id, red_enabled, created_atsettings:notify_times(bildirim saatleri),last_move(geri alma için)email_sent: gün/saat başına gönderim kaydı (çift gönderimi engeller)
Durum kuralları: kırmızı = open + red_enabled=1 + tarih bugünden önce.
moved = üstü çizili, yanında hedef tarih. Otomatik aktarma yok — sadece butonla.
cron.ts 15 dakikada bir çalışır. Ayardaki her saat için, o saat Berlin'de geçtiyse ve o gün o
saat için gönderim kaydı yoksa hatırlatıcı mail atar. Konu Todo | 14:00 | Val; günün son
bildiriminde Todo | Yarına aktarmayı unutma | Val. İçerik: (1) kırmızılar, (2) bugünün
bitmemişleri, altta takvim linki.
SMTP için GMAIL_USER / GMAIL_PASS (Gmail uygulama şifresi) gerekir. Alıcı: run.ts içindeki
TO sabiti.
main.ts— HTTP sunucusu (Hono): sayfa + JSON API,?s=ile doğrulamadb.ts— SQLite (şema + sorgular)time.ts— Europe/Berlin tarih/saat yardımcılarıcron.ts— mail bildirimi (interval)run.ts— Gmail SMTP gönderimiindex.html,app.js— arayüz (vanilla JS)