✦ Türkiye'nin En Kapsamlı LCV Platformu

Özel Anlarınız
için Zarif
Davetiyeler

Düğün, kına gecesi, nişan ve daha fazlası için dakikalar içinde dijital davetiye oluşturun. Misafirlerinize WhatsApp veya e-posta ile gönderin, katılımları takip edin.

Ayşe & Mehmet
15 Haziran 2025
Konya Müzik Evi
Kına Gecesi
14 Haziran 2025
Aile Evi
Zeynep & Ali
Düğüne Davetlisiniz
Sizi aramızda görmek isteriz
12K+ Gönderilen Davetiye
98% Müşteri Memnuniyeti
50+ Hazır Şablon
Neler sunuyoruz

Her Organizasyon İçin
Eksiksiz Hizmet

LCV (Lütfen Cevap Veriniz) takibinden özel tasarım davetiyelere kadar organizasyonunuzu kolaylaştırıyoruz.

💍
Düğün Davetiyesi

Özel tasarım dijital davetiye, harita entegrasyonu, kıyafet kodu ve RSVP takibi ile eşsiz bir deneyim.

En Popüler
🌸
Kına Gecesi

Geleneksel ve modern tasarım seçenekleriyle kına gecenize özel, rengarenk davetiyeler.

Yeni Şablonlar
💎
Nişan Töreni

Sade ve zarif nişan davetiyeleri. Çift fotoğrafı ve özel mesaj ekleyebilirsiniz.

Özelleştirilebilir
🎂
Doğum Günü & Sünnet

Çocuk doğum günlerinden büyük kutlamalara kadar her yaşa uygun şenlikli tasarımlar.

Geniş Seçenek
📊
LCV Takip Sistemi

Misafirlerinizin katılım durumunu gerçek zamanlı takip edin, hatırlatma bildirimleri gönderin.

Canlı Takip
📱
WhatsApp & SMS Gönderim

Tek tıkla tüm misafir listenize WhatsApp veya SMS ile davetiye gönderin.

Toplu Gönderim
Hemen oluştur

Davetiyen Hazır
Dakikalar İçinde

✦ Canlı Önizleme
DÜĞÜN TÖRENINE
Mehmet & Ayşe
15 Haziran 2025 · Saat 19:00
Grand Ballroom, Konya
Sizi aramızda görmekten büyük mutluluk duyarız...
Çok basit

4 Adımda Davetin
Hazır

Teknik bilgiye gerek yok. Sadece bilgilerinizi girin, şablonu seçin ve gönderin.

1
Şablon Seç

50'den fazla şablon arasından etkinliğinize uygun olanı seçin.

2
Bilgileri Gir

İsimler, tarih, mekan ve özel mesajınızı ekleyin.

3
Misafir Listesi

Excel'den aktarın veya manuel olarak misafirlerinizi ekleyin.

4
Gönder & Takip Et

Tek tıkla gönderin, katılım durumlarını canlı takip edin.

O Güne Sayılıyor

Etkinlik Geri
Sayım Sayacı

Gelin ve damat adını, tarihi ve mekanı girin — anında kişiselleştirilmiş geri sayım sayfanız hazır.

Mutlu Günlere Geri Sayım
Zeynep & Ali
Düğün
045
Gün
00
Saat
00
Dakika
00
Saniye
📍 Grand Ballroom, Ankara
✦ Sevginin Adresi ✦
Tasarımlar

50'den Fazla
Hazır Şablon

Her zevke ve her organizasyona özel, profesyonelce tasarlanmış şablonlar.

Klasik Gece
Zeynep & Ali
15 Haziran 2025
Çiçek Bahçesi
Fatma & Emre
Kına Gecesi
İnci Beyazı
Seda & Burak
Nişan Töreni
Doğa Şöleni
Hatice & Murat
Düğün
Lacivert Zarafet
Merve & Oğuz
Düğün & Nişan
Altın Çağ
Elif & Hakan
Özel Gece
Tüm Şablonları Gör →
Paketler

İhtiyacınıza Uygun
Paket Seçin

Tüm paketlerde 14 gün ücretsiz deneme imkânı. Kredi kartı gerekmez.

Çiçek
₺0 / etkinlik
Ücretsiz Başlangıç
  • 1 etkinlik
  • 50 davet gönderi
  • 5 hazır şablon
  • WhatsApp linki
  • Temel LCV takibi
Saray
₺349 / etkinlik
Tek seferlik ödeme
  • Sınırsız etkinlik
  • Sınırsız davet gönderi
  • Özel tasarım hizmeti
  • Öncelikli destek
  • Fotoğraf galerisi
  • QR kod davetiye
  • Misafir masa planı
  • Video davetiye
Etkinlik Günü

Hava Durumu &
Konum Bilgisi

Etkinlik günündeki hava durumunu ve mekan konumunu misafirlerinizle paylaşın.

✦ Etkinlik Günü Hava Durumu
Ankara
16°C
Parçalı bulutlu
Nem
Rüzgar
%25
Yağış İht.
Çar
26°
%25
Per
🌤
27°
%15
Cum
🌦
26°
%35
Cmt
🌦
26°
%35
Paz
☀️
29°
%0
💡 Tavsiye: Hava durumu yükleniyor...
✦ Etkinlik Mekanı
🗺 Google Maps'te Aç
📍
Ankara, Türkiye
Misafirlerinize bu konumu paylaşın
Waze
Kurumsal Hizmetler

Sadece Düğün Değil,
Her Organizasyon

Konferans, seminer, şirket etkinliği ve mezuniyet törenlerinde de yanınızdayız.

🎤
Konferans & Seminer
QR akreditasyon, oturum yönetimi, dijital sertifika
🏢
Şirket Etkinliği
Lansman, yıllık toplantı, takım buluşması organizasyonu
🎓
Mezuniyet Töreni
Veli & mezun davetiyesi, tören programı, fotoğraf galerisi
🤝
Gala & Ödül Töreni
VIP yönetimi, basın akreditasyonu, özel tasarım
Kurumsal çözümler için detaylı bilgi alın
500'den fazla kurumsal etkinliği başarıyla yönettik
Kurumsal Sayfaya Git →
Yorumlar

Mutlu Çiftler
Anlatıyor

★★★★★

"Düğünümüz için bu siteyi kullandık, 300 misafire tek tıkla davetiye gönderdik. Kimden geldiğini, kim açtı, kim kabul etti hepsini görebildik. Harikaydı!"

Z
Zeynep & Ahmet K.
Düğün · Konya, 2024
★★★★★

"Kına gecesi davetiyeleri çok şık çıktı. Kız arkadaşlarım 'bunu nasıl yaptın?' diye sordu. Gerçekten profesyonel görünüyor ve kullanımı çok kolay."

F
Fatma Yıldız
Kına Gecesi · Ankara, 2025
★★★★★

"Nişanımız için yurt dışındaki akrabalarımıza da rahatça gönderebildik. Harita entegrasyonu sayesinde kimse mekanı bulmakta zorlanmadı."

S
Seda & Burak D.
Nişan · İstanbul, 2025
Anıları Yakalayın

Misafir Fotoğraf
Galerisi

Masalara QR kod koyun. Misafirler telefonlarıyla çektikleri fotoğrafları anında gelin ve damata ulaştırsın.

1
QR Kodu Oluştur
Etkinliğinize özel QR kod saniyeler içinde hazır. Masalara, davetiyeye veya girişe koyun.
2
Misafir Tarar & Yükler
Telefon kamerasıyla QR'ı taran misafir, uygulama indirmeden fotoğraf yükler.
3
Gelin & Damat Görür
Tüm fotoğraflar özel panelde anlık toplanır. İstediğinizi indirip saklayın.
📸
Sınırsız Fotoğraf
Anlık Görüntüleme
📱
Uygulama Gerekmez
💾
Toplu İndirme
Etkinlik Adı
📸 Fotoğraf Paylaş
QR burada
Zeynep & Ali Düğünü
Fotoğrafınızı yüklemek için tarayın
💡 Her masa için farklı QR oluşturabilir, hangi masadan kaç fotoğraf geldiğini takip edebilirsiniz.
✦ Gelin & Damat Paneli — Gelen Fotoğraflar
🌹
💐
🎊
💍
🥂
+
YENİ
☁️ Cloudinary bağlantısı kurulunca tam çalışacak
LCV Takip

Misafir Takip
Paneli

Misafirlerinizi ekleyin, katılım durumlarını takip edin, WhatsApp ile hatırlatma gönderin.

0
Toplam Davetli
0
Katılacak
0
Katılmayacak
0
Bekleniyor
✦ Misafir Ekle
Toplu ekle:
# Ad Soyad Telefon Grup Durum WhatsApp Sil
Henüz misafir eklenmedi. Yukarıdan ekleyebilirsiniz.
Katılım Oranı 0%
`); win.document.close(); setTimeout(() => win.print(), 800); } // Nav'a foto linki ekle document.querySelector('.nav-links').insertAdjacentHTML('beforeend', '
  • Fotoğraf
  • '); // ── HAVA DURUMU & HARİTA ── const OWM_KEY = '6d73b88a4edfdc9170002c745ed9b5be'; const OWM_ICONS = { '01': '☀️', '02': '⛅', '03': '☁️', '04': '☁️', '09': '🌦️', '10': '🌧️', '11': '⛈️', '13': '❄️', '50': '🌫️' }; const OWM_TR = { 'clear sky':'Açık ve güneşli','few clouds':'Az bulutlu', 'scattered clouds':'Parçalı bulutlu','broken clouds':'Çok bulutlu', 'overcast clouds':'Kapalı','shower rain':'Sağanak yağış', 'light rain':'Hafif yağmur','moderate rain':'Orta yağmur', 'heavy intensity rain':'Şiddetli yağmur','thunderstorm':'Fırtına', 'snow':'Karlı','mist':'Sisli','fog':'Yoğun sis','haze':'Puslu' }; const ADVICE = { Clear: '☀️ Harika hava! Açık alan etkinliği için mükemmel.', Clouds: '⛅ Bulutlu ama yağış yok. Etkinlik için uygun.', Rain: '🌧️ Yağmur bekleniyor. Çadır veya kapalı alan planı yapın.', Drizzle: '🌦️ Hafif yağış olabilir. Yedek çadır tavsiye edilir.', Thunderstorm: '⛈️ Fırtına uyarısı! Açık alan etkinliği riskli.', Snow: '❄️ Kar bekleniyor. Misafirlerinizi önceden uyarın.', Mist: '🌫️ Sisli hava. Ulaşım için erken çıkılmasını önerin.', default: '💡 Hava durumunu takip etmeye devam edin.' }; const DAYS_TR = ['Paz','Pzt','Sal','Çar','Per','Cum','Cmt']; async function fetchWeather(cityOverride) { const city = cityOverride || document.getElementById('weatherCity').value.trim() || 'Ankara'; document.getElementById('wCity').textContent = city; document.getElementById('wTemp').textContent = '...'; document.getElementById('wDesc').textContent = 'Yükleniyor...'; try { // Güncel hava const res = await fetch( `https://api.openweathermap.org/data/2.5/weather?q=${encodeURIComponent(city)}&appid=${OWM_KEY}&units=metric&lang=tr` ); if (!res.ok) throw new Error('Şehir bulunamadı'); const d = await res.json(); const iconCode = d.weather[0].icon.slice(0,2); const desc = d.weather[0].description; const descTR = OWM_TR[d.weather[0].description] || desc; const main = d.weather[0].main; document.getElementById('wCity').textContent = d.name + ', ' + d.sys.country; document.getElementById('wTemp').textContent = Math.round(d.main.temp) + '°C'; document.getElementById('wIcon').textContent = OWM_ICONS[iconCode] || '🌡️'; document.getElementById('wDesc').textContent = descTR; document.getElementById('wRain').textContent = '%' + (d.clouds?.all ?? '—'); // Tavsiye const advice = ADVICE[main] || ADVICE.default; document.querySelector('[id="weatherCard"] + div + div, section#harita div[style*="rgba(200,169,110,0.1)"]') && null; const advEl = document.getElementById('weatherAdvice'); if (advEl) advEl.innerHTML = 'Tavsiye: ' + advice; // 5 günlük tahmin const res2 = await fetch( `https://api.openweathermap.org/data/2.5/forecast?q=${encodeURIComponent(city)}&appid=${OWM_KEY}&units=metric&cnt=5&lang=tr` ); const d2 = await res2.json(); const fc = document.getElementById('forecast'); if (fc && d2.list) { fc.innerHTML = d2.list.slice(0,5).map(item => { const ic = item.weather[0].icon.slice(0,2); const day = DAYS_TR[new Date(item.dt_txt).getDay()]; const rain = item.pop ? Math.round(item.pop * 100) : 0; const rainColor = rain > 50 ? 'var(--rose)' : rain > 20 ? 'var(--gold)' : 'var(--sage)'; return `
    ${day}
    ${OWM_ICONS[ic] || '🌡️'}
    ${Math.round(item.main.temp)}°
    %${rain}
    `; }).join(''); } } catch(e) { document.getElementById('wTemp').textContent = '—'; document.getElementById('wDesc').textContent = e.message || 'Veri alınamadı'; } } // Sayfa yüklenince Ankara'yı getir document.getElementById('weatherCity').value = 'Ankara'; fetchWeather('Ankara'); function updateMap() { const addr = document.getElementById('mapAddress').value.trim(); if (!addr) return; const encoded = encodeURIComponent(addr); document.getElementById('mapFrame').src = 'https://maps.google.com/maps?q=' + encoded + '&output=embed&z=15'; document.getElementById('mapsLink').href = 'https://maps.google.com/?q=' + encoded; document.getElementById('wazeLink').href = 'https://waze.com/ul?q=' + encoded; document.getElementById('venueName').textContent = addr; } function copyMapLink() { const addr = document.getElementById('mapAddress').value.trim() || 'Ankara, Türkiye'; const link = 'https://maps.google.com/?q=' + encodeURIComponent(addr); navigator.clipboard.writeText(link).then(() => { const btn = event.currentTarget || event.target; const orig = btn.innerHTML; btn.innerHTML = '✓ Kopyalandı!'; btn.style.color = 'var(--sage)'; setTimeout(() => { btn.innerHTML = orig; btn.style.color = 'var(--ink)'; }, 2000); }); } // ── LCV TAKİP SİSTEMİ ── let guests = []; let currentFilter = 'all'; function addGuest() { const name = document.getElementById('guestName').value.trim(); const phone = document.getElementById('guestPhone').value.trim(); const group = document.getElementById('guestGroup').value.trim(); if (!name) { alert('Lütfen en azından isim girin.'); return; } guests.push({ id: Date.now(), name, phone, group, status: 'bekleniyor' }); document.getElementById('guestName').value = ''; document.getElementById('guestPhone').value = ''; document.getElementById('guestGroup').value = ''; renderGuests(); updateSummary(); } function bulkAdd() { const lines = document.getElementById('bulkInput').value.trim().split('\n'); lines.forEach(line => { if (!line.trim()) return; const parts = line.split(','); const name = parts[0] ? parts[0].trim() : ''; const phone = parts[1] ? parts[1].trim() : ''; if (name) guests.push({ id: Date.now() + Math.random(), name, phone, group: '', status: 'bekleniyor' }); }); document.getElementById('bulkInput').value = ''; renderGuests(); updateSummary(); } function setStatus(id, status) { const g = guests.find(g => g.id === id); if (g) { g.status = status; renderGuests(); updateSummary(); } } function deleteGuest(id) { guests = guests.filter(g => g.id !== id); renderGuests(); updateSummary(); } function setFilter(f, btn) { currentFilter = f; document.querySelectorAll('.filter-btn').forEach(b => { b.style.background = 'transparent'; b.style.color = b.dataset.color || 'var(--ink-light)'; }); btn.style.background = btn.style.borderColor; btn.style.color = 'var(--white)'; renderGuests(); } function renderGuests() { const search = document.getElementById('searchInput').value.toLowerCase(); const tbody = document.getElementById('guestTableBody'); let filtered = guests.filter(g => { const matchFilter = currentFilter === 'all' || g.status === currentFilter; const matchSearch = g.name.toLowerCase().includes(search) || g.phone.includes(search); return matchFilter && matchSearch; }); if (filtered.length === 0) { tbody.innerHTML = `${guests.length === 0 ? 'Henüz misafir eklenmedi.' : 'Sonuç bulunamadı.'}`; return; } const statusColors = { katılacak: 'var(--sage)', katılmayacak: 'var(--rose)', bekleniyor: 'var(--gold)' }; const statusLabels = { katılacak: 'Katılacak', katılmayacak: 'Katılmayacak', bekleniyor: 'Bekleniyor' }; tbody.innerHTML = filtered.map((g, i) => ` ${i+1} ${g.name} ${g.phone || '—'} ${g.group || '—'} ${g.phone ? ` 📲 Gönder ` : ''} `).join(''); } function updateSummary() { const total = guests.length; const yes = guests.filter(g => g.status === 'katılacak').length; const no = guests.filter(g => g.status === 'katılmayacak').length; const pending = guests.filter(g => g.status === 'bekleniyor').length; document.getElementById('totalCount').textContent = total; document.getElementById('yesCount').textContent = yes; document.getElementById('noCount').textContent = no; document.getElementById('pendingCount').textContent = pending; const rate = total ? Math.round(yes / total * 100) : 0; document.getElementById('progressBar').style.width = rate + '%'; document.getElementById('rateText').textContent = rate + '%'; } function exportCSV() { if (!guests.length) { alert('Dışa aktarılacak misafir yok.'); return; } const rows = [['Ad Soyad','Telefon','Grup','Durum']]; guests.forEach(g => rows.push([g.name, g.phone, g.group, g.status])); const csv = rows.map(r => r.join(',')).join('\n'); const blob = new Blob(['\uFEFF'+csv], {type:'text/csv;charset=utf-8'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'misafir-listesi.csv'; a.click(); } // Nav'a LCV linki ekle document.querySelector('.nav-links').insertAdjacentHTML('beforeend', '
  • LCV Takip
  • '); // ── AUTH MODAL ── window.openAuth = function() { const modal = document.getElementById('authModal'); modal.style.display = 'flex'; }; window.closeAuth = function() { document.getElementById('authModal').style.display = 'none'; }; window.switchTab = function(tab) { if (tab === 'giris') { document.getElementById('formGiris').style.display = 'block'; document.getElementById('formKayit').style.display = 'none'; document.getElementById('tabGiris').style.background = 'var(--gold)'; document.getElementById('tabGiris').style.color = 'var(--white)'; document.getElementById('tabKayit').style.background = 'transparent'; document.getElementById('tabKayit').style.color = 'var(--ink-light)'; } else { document.getElementById('formGiris').style.display = 'none'; document.getElementById('formKayit').style.display = 'block'; document.getElementById('tabKayit').style.background = 'var(--rose)'; document.getElementById('tabKayit').style.color = 'var(--white)'; document.getElementById('tabGiris').style.background = 'transparent'; document.getElementById('tabGiris').style.color = 'var(--ink-light)'; } }; // ── PAYLAŞIM FONKSİYONLARI ── function davetiyelinkOlustur() { const gelin = document.getElementById('groom').value || 'Gelin'; const damat = document.getElementById('bride').value || 'Damat'; const tarih = document.getElementById('eventDate').value; const mekan = document.getElementById('venue').value || ''; const tur = document.getElementById('eventType').value || 'Düğün'; const params = new URLSearchParams({ gelin, damat, tarih, mekan, tur }); return `https://davetlcv.com/davet?${params.toString()}`; } function whatsappMesajiOlustur() { const gelin = document.getElementById('groom').value || 'Gelin'; const damat = document.getElementById('bride').value || 'Damat'; const tarih = document.getElementById('eventDate').value; const mekan = document.getElementById('venue').value || ''; const tur = document.getElementById('eventType').value || 'Düğününe'; const link = davetiyelinkOlustur(); const tarihStr = tarih ? new Date(tarih).toLocaleDateString('tr-TR',{day:'numeric',month:'long',year:'numeric'}) : ''; return `💍 *${gelin} & ${damat} ${tur}* ` + `Sizi aramızda görmekten büyük mutluluk duyarız. ` + `📅 ${tarihStr} ` + (mekan ? `📍 ${mekan} ` : '') + ` ✨ Davetiyenizi görüntülemek için: ${link}`; } function linkKopyala() { const link = davetiyelinkOlustur(); document.getElementById('davetiyelink').value = link; navigator.clipboard.writeText(link).then(() => { const btn = document.getElementById('kopyalaBtn'); btn.innerHTML = '✓ Kopyalandı!'; btn.style.background = 'var(--sage)'; setTimeout(() => { btn.innerHTML = '📋 Kopyala'; btn.style.background = 'var(--gold)'; }, 2000); }); } function whatsappGonder() { const mesaj = whatsappMesajiOlustur(); window.open(`https://wa.me/?text=${encodeURIComponent(mesaj)}`, '_blank'); } function whatsappTopluGonder() { const panel = document.getElementById('topluPanel'); panel.style.display = panel.style.display === 'none' ? 'block' : 'none'; } function topluWhatsapp() { const satirlar = document.getElementById('topluTelefon').value.trim().split('\n').filter(s => s.trim()); if (!satirlar.length) { alert('Lütfen telefon numarası girin.'); return; } const mesaj = whatsappMesajiOlustur(); const sayac = document.getElementById('topluSayac'); sayac.textContent = `${satirlar.length} kişiye gönderiliyor...`; satirlar.forEach((tel, i) => { const temiz = tel.replace(/\D/g,'').replace(/^0/,''); setTimeout(() => { window.open(`https://wa.me/90${temiz}?text=${encodeURIComponent(mesaj)}`, '_blank'); }, i * 1500); }); setTimeout(() => { sayac.textContent = `✓ ${satirlar.length} kişiye gönderildi!`; }, satirlar.length * 1500); } function smsGonder() { const mesaj = whatsappMesajiOlustur(); window.open(`sms:?body=${encodeURIComponent(mesaj)}`, '_blank'); } function emailGonder() { const gelin = document.getElementById('groom').value || 'Gelin'; const damat = document.getElementById('bride').value || 'Damat'; const konu = encodeURIComponent(`${gelin} & ${damat} Düğün Davetiyesi`); const mesaj = encodeURIComponent(whatsappMesajiOlustur()); window.open(`mailto:?subject=${konu}&body=${mesaj}`, '_blank'); } function showSuccessMsg() { const msg = document.getElementById('successMsg'); msg.style.display = 'block'; setTimeout(() => msg.style.display = 'none', 3500); // Paylaşım bölümünü göster const paylasim = document.getElementById('paylasimBolum'); paylasim.style.display = 'block'; // Linki güncelle document.getElementById('davetiyelink').value = davetiyelinkOlustur(); paylasim.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }