Cara Bangun AI Agent Penjadwalan Meeting Pintar dengan n8n + Google Calendar + GPT (MVP 1 Hari)
· 4 menit baca
Cara Bangun AI Agent Penjadwalan Meeting Pintar dengan n8n + Google Calendar + GPT (MVP 1 Hari)
🔧 Hook: Meeting yang tumpang tindih bikin tim stres
Anda pasti pernah mengalami situasi di mana email konfirmasi meeting bertumpuk, peserta harus bolak-balik mencari slot yang cocok, atau bahkan ada yang no‑show karena lupa. Untuk tim dev atau founder yang sibuk, ini bukan cuma mengganggu—itu berarti waktu produktif hilang. Apa jadinya kalau ada agen AI yang otomatis memindai kalender, menegosiasikan slot terbaik, dan mengirim konfirmasi—semua dalam hitungan detik?
🤖 Konsep: AI Agent + Workflow Orchestration
Inti solusi adalah AI Agent yang berperan sebagai “asisten meeting”. Agent ini menggunakan GPT untuk memproses bahasa alami (misalnya “Saya butuh meeting 30 menit dengan tim marketing minggu depan”) dan kemudian mengeksekusi tindakan di n8n—menarik data kalender lewat Google Calendar API, mengoptimalkan slot, serta mengirimkan undangan lewat email atau Slack.
- n8n = orkestrator visual, menghubungkan API & LLM.
- GPT = pemahaman intent, generasi teks (draft agenda, reminder).
- Google Calendar API = sumber kebenaran slot waktu.
🛠️ Breakdown Teknis
1. Persiapan Lingkungan
- Deploy n8n (Docker
docker run -d --name n8n -p 5678:5678 n8nio/n8n) atau gunakan n8n.cloud. - Dapatkan OpenAI API key dan Google Service Account JSON dengan scope
https://www.googleapis.com/auth/calendar. - Instalasi node
n8n-nodes-openaidann8n-nodes-googlevia “Settings → Nodes → Install New Node”.
2. Desain Workflow di n8n
Berikut alur utama (dengan screenshot opsional):
- Trigger: HTTP Request (webhook) atau Slack Bot Command
/schedule‑meeting. - LLM Prompt Node: Kirim pesan pengguna ke GPT‑4 dengan prompt “Extract meeting intent, participants, duration, preferred dates”.
- Function Node (JS): Normalisasi output (ISO strings, array peserta).
- Google Calendar – Find Events: Query kalender semua peserta (gunakan
primaryatau ID tiap kalender) untuk rentang 2 minggu ke depan. - Function Node – Slot Engine: Algoritma simpel:
available = intersectFreeSlots(participantCalendars, duration, preferredRange)
Jika >1 slot, pilih slot terdekat dengan prioritas “earliest”. - LLM Prompt Node (Agenda Draft): Buat agenda singkat berdasarkan topik yang diberikan.
- Google Calendar – Create Event: Buat event dengan
attendees,description(agenda), danconferenceDatauntuk video call. - Slack / Email Node: Kirim konfirmasi kepada semua peserta, sertakan tombol “Reschedule” yang memanggil kembali webhook.
3. Kode Helper – Slot Intersection
Berikut contoh fungsi JavaScript yang dapat dipakai di Function Node:
function toMinutes(date) {return date.getTime() / 60000;}
function intersectFreeSlots(calendars, duration, range) {
const step = 15; // menit
const start = new Date(range.start);
const end = new Date(range.end);
const slots = [];
for(let t = start; t < end; t = new Date(t.getTime() + step*60000)) {
const slotEnd = new Date(t.getTime() + duration*60000);
const free = calendars.every(cal =>
!cal.some(ev =>
(new Date(ev.start) < slotEnd) && (new Date(ev.end) > t)
)
);
if(free) slots.push({start: t, end: slotEnd});
}
return slots;
}
return {availableSlots: intersectFreeSlots($json["calendars"], $json["duration"], $json["range"]) };
Hasilnya dapat langsung dipakai untuk Create Event.
4. Prompt Engineering yang Efektif
Gunakan dua prompt terpisah:
**Intent Extraction**
You are an assistant that extracts meeting details from a free‑text request. Return JSON with keys: participants (array of emails), duration (minutes), topic (string), preferred_dates (array of ISO dates).
**Agenda Draft**
Given the topic "{{topic}}" and participants {{participants}}, generate a concise 3‑point agenda.
💡 Contoh Use Case Real
Startup SaaS ingin mengurangi friksi meeting internal. Mereka mengganti proses manual (email‑email) dengan bot Slack /schedule‑meeting. Hasilnya:
- Waktu penjadwalan turun dari 15 menit → 30 detik.
- Absensi berkurang 40 % karena reminder otomatis 10 menit sebelum meeting.
- Tim dapat melihat slot “optimal” berdasarkan seluruh kalender, bukan hanya satu orang.
🚀 Insight & Strategi untuk Skalabilitas
- Cache hasil kalender selama 2‑3 menit untuk mengurangi quota Google API.
- Implementasikan rate‑limit handling di n8n (Retry node) agar tidak kena “429 Too Many Requests”.
- Gunakan model fallback: jika GPT‑4 tidak respons cepat, switch ke GPT‑3.5 untuk ekstraksi intent.
- Integrasikan feedback loop: setelah meeting selesai, bot menanyakan “Apakah agenda tepat?” dan menyimpan rating untuk fine‑tuning prompt.
- Jika tim > 50 anggota, pertimbangkan distributed slot engine (run di AWS Lambda) dan hanya kirim ringkasan slot ke n8n.
📝 Penutup & Call to Action
Dengan kombinasi n8n, Google Calendar API, dan GPT, Anda dapat mengubah proses penjadwalan yang berulang menjadi alur otomatis yang smart dalam satu hari kerja. Mulailah dengan menyiapkan webhook Slack, copy‑paste workflow template di atas, dan sesuaikan prompt untuk kebutuhan tim Anda.
Download template workflow dan dapatkan OpenAI API key sekarang. Bangun, uji, dan scale—meeting Anda akan berterima kasih!