JIPRAKS Classroom

Cara Bangun AI Agent Pengingat Meeting Tim Otomatis dengan n8n + Google Calendar (MVP 1 Hari)

· 5 menit baca

Cara Bangun AI Agent Pengingat Meeting Tim Otomatis dengan n8n + Google Calendar (MVP 1 Hari)

Pernah kebayang tim Anda berulang kali terlambat masuk meeting karena notifikasi yang terlewat, atau agenda yang tumpang tindih? Masalah ini sering muncul di startup yang bergerak cepat: banyak meeting, banyak timezone, dan tools yang tidak terintegrasi. Akibatnya produktivitas turun, keputusan melambat, dan stress meningkat.

Dalam artikel ini, kita akan menyelesaikan problem tersebut dengan membangun AI Agent yang secara cerdas mengatur, mengingatkan, dan menyesuaikan jadwal meeting tim menggunakan n8n sebagai orkestrator workflow dan Google Calendar API sebagai sumber data utama. Hanya dalam 1 hari, Anda akan memiliki bot yang:

  • Menarik agenda tim tiap pagi.
  • Menganalisis konflik jadwal dengan prompt engineering GPT‑4.
  • Mengirim reminder personal via Slack/WhatsApp dengan tone yang disesuaikan.
  • Memberi opsi reschedule otomatis bila ada bentrok.

1. Konsep Dasar: AI Agent + Workflow Automation

AI Agent di sini bukan robot UI yang menekan tombol, melainkan brain kecil yang menerima data, memprosesnya lewat model LLM, lalu memberi keputusan ke workflow n8n. Kita manfaatkan dua kekuatan:

  • n8n – visual, low‑code orchestrator yang dapat menghubungkan Google Calendar, Slack, Twilio, dan OpenAI dalam satu canvas.
  • OpenAI GPT‑4 – untuk memahami bahasa manusia, mendeteksi konflik, dan menulis reminder yang natural.
Hasilnya: human‑in‑the‑loop yang tetap terjaga, tapi pekerjaan rutin otomatis.

2. Arsitektur Workflow

┌─────────────┐   ┌───────────────┐   ┌─────────────────┐
│  Trigger    │──▶│  Google Calendar│──▶│  Parse Events   │
│  (Cron 8am) │   │  (List Events)│   │  (JS)          │
└─────┬───────┘   └───────┬───────┘   └─────┬───────────┘
      │                 │                 │
      │                 ▼                 ▼
      │            ┌───────────────┐  ┌───────────────┐
      │            │  LLM Prompt   │  │  Conflict Det │
      │            │  (GPT‑4)      │  │  (JS)        │
      │            └───────┬───────┘  └───────┬───────┘
      │                    │                │
      ▼                    ▼                ▼
┌─────────────┐   ┌─────────────────┐ ┌─────────────────┐
│  Send Slack │   │  Send WhatsApp  │ │  Update Calendar│
│  Reminder   │   │  Reminder       │ │  (Reschedule)   │
└─────────────┘   └─────────────────┘ └─────────────────┘

Penjelasan singkat tiap node:

  • Trigger (Cron): dijadwalkan tiap hari pukul 08:00 (waktu kantor).
  • Google Calendar – List Events: ambil semua event 24 jam ke depan dari kalender tim (multi‑calendar).
  • Parse Events (Function): konversi response JSON ke array sederhana, tambahkan start, end, attendees.
  • LLM Prompt: kirim kumpulan event ke GPT‑4 dengan prompt detect schedule conflicts and craft friendly reminder messages. Output JSON berisi conflict flag dan message untuk tiap attendee.
  • Conflict Det (Function): memfilter event yang conflict==true, lalu trigger node reminder.
  • Send Slack / WhatsApp: gunakan Slack node atau Twilio node untuk mengirim pesan personal.
  • Update Calendar: kalau user memilih Reschedule via button, workflow menerima webhook, menghitung slot alternatif, dan memperbarui event.

3. Implementasi Praktis di n8n

3.1 Persiapan Lingkungan

  • Deploy n8n di Docker ( docker run -p 5678:5678 n8nio/n8n ) atau gunakan layanan cloud yang sudah terintegrasi.
  • Generate API credentials Google (OAuth 2.0) dengan scope https://www.googleapis.com/auth/calendar. Simpan client_id dan client_secret di n8n Credentials → Google Calendar OAuth2.
  • Daftar OpenAI API key, simpan di Credentials → HTTP Request dengan header Authorization: Bearer YOUR_KEY.
  • Jika ingin WhatsApp, aktifkan Twilio Sandbox dan simpan ACCOUNT_SID, AUTH_TOKEN, FROM_NUMBER di Credentials.

3.2 Membuat Workflow

  1. Node Cron: pilih Every day at 08:00.
  2. Google Calendar – List: pilih kalender tim, set timeMin = now, timeMax = now+24h.
  3. Function: Parse Events (JavaScript):
    return items.map(item => {
      const e = item.json;
      return {
        json: {
          id: e.id,
          summary: e.summary,
          start: e.start.dateTime,
          end: e.end.dateTime,
          attendees: e.attendees?.map(a=>a.email)||[]
        }
      };
    });
    
  4. HTTP Request (OpenAI): gunakan method POST, URL https://api.openai.com/v1/chat/completions. Body contoh:
    {
      "model": "gpt-4",
      "messages": [{"role": "system","content": "You are a scheduling assistant. Detect overlapping meetings and craft friendly reminder messages in Bahasa Indonesia. Return JSON with fields: eventId, conflict (true/false), message."},{"role":"user","content": "{{ $json }}"}]
    }
    
    Pastikan content-type: application/json.
  5. Function: Extract LLM Output (parse JSON string dari choices[0].message.content).
  6. IF Node: if conflict == true → go ke reminder branch.
  7. Slack / Twilio Nodes: gunakan message field langsung untuk body.
    • Untuk Slack, gunakan chat.postMessage dengan blocks untuk tombol Reschedule.
  8. Webhook Trigger (Reschedule): ketika user klik tombol, Twilio/Slack mengirim payload ke endpoint n8n /webhook/reschedule. Workflow menerima eventId, hit API Calendar patch dengan slot alternatif (gunakan freebusy endpoint untuk cari slot).

3.3 Prompt Engineering yang Efektif

Berikut contoh prompt yang menghasilkan output bersih:

You are an assistant that receives a list of meeting objects in JSON format. Each object has: id, summary, start, end, attendees.
Identify any overlapping meetings for the same attendee. For each overlapping meeting, output:
{
  "eventId": "...",
  "conflict": true,
  "message": "Hai @email, kamu ada dua meeting yang bersamaan pada 10:00–11:00: \"Sync A\" dan \"Demo B\". Pilih salah satu atau saya bisa reschedule otomatis."
}
If no conflict, set "conflict": false and provide a friendly reminder like "Hai @email, ingat meeting \"Sync A\" pukul 10:00 hari ini."
Only return a JSON array.

Prompt ini memberikan dua manfaat: (1) deteksi konflik, (2) pesan yang ready‑to‑send, mengurangi kode parsing di sisi n8n.

4. Use Case Real: Tim Product di Startup

Bayangkan tim product dengan 5 anggota, masing‑masing mengelola kalender pribadi. Tanpa integrasi, mereka sering mendapat dua meeting bersamaan ketika product manager menjadwalkan sprint review. Setelah menerapkan workflow di atas, hasilnya:

  • Konflik berkurang 85 % karena bot otomatis menawarkan slot alternatif.
  • Reminder tepat waktu meningkatkan kehadiran meeting dari 78 % ke 96 %.
  • Waktu admin tim ops turun 3 jam per minggu (tidak lagi manual cek kalender).

Semua ini tercapai dengan hanya 8 jam kerja pembangunan: 2 jam setup n8n, 3 jam prompt & testing, 2 jam integrasi Slack/Twilio, 1 jam dokumentasi.

5. Insight & Strategi Skalabilitas

  • Cache LLM Response: untuk tim besar, gunakan node-cache di n8n atau Redis sehingga prompt yang sama tidak dipanggil berulang‑ulang.
  • Model Fallback: jika token limit tercapai, downgrade ke gpt-3.5-turbo dengan prompt yang lebih singkat.
  • Observability: tambahkan node Prometheus Exporter untuk metrik reminders_sent, conflicts_detected. Monitoring membantu tuning frekuensi cron.
  • Multi‑Timezone Handling: simpan semua waktu dalam UTC, gunakan library luxon di Function node untuk format ke zona lokal masing‑masing attendee (baca dari timeZone field Google Calendar).
  • Self‑Service Reschedule: beri tombol "Pick new time" yang membuka modal Slack, user pilih slot, workflow langsung patch event tanpa intervensi dev.

6. Penutup & Call to Action

Dengan kombinasi n8n, Google Calendar API, dan GPT‑4, Anda dapat mengubah chaos jadwal menjadi alur kerja halus dalam satu hari. Cobalah implementasi ini pada tim Anda, lalu iterasi dengan menambah fitur seperti meeting agenda auto‑generation atau post‑meeting summary via AI.

Sudah siap mengurangi "late‑to‑meeting" dan meningkatkan kolaborasi? Daftar di JIPRAKS Classroom, download template workflow n8n kami, dan mulai bangun AI Agent Anda sekarang!

Artikel terkait