Overview

An n8n workflow that polls Google Calendar every 15 minutes, deduplicates against an existing Notion database, classifies each new event using Gemini 2.5 Flash, and writes the result to the Diary database in Notion.

Workflow name: Google Calendar -> Notion (Diary Sync)


Architecture

flowchart LR
    A["Poll Every 15 Minutes"] --> B["Fetch Future Events"]
    B --> C["Loop Through Events"]
    C --> D["Extract Event Fields"]
    D --> E["Check for Duplicate"]
    E --> F{"Is New Event?"}
    F -- Yes --> G["Classify Event Type"]
    F -- No --> C
    G --> H["Parse Classification"]
    H --> I["Write to Diary"]
    I --> C

Node Reference

1. Poll Every 15 Minutes

Property Value
Type n8n-nodes-base.scheduleTrigger v1.3
Interval Every 15 minutes

Triggers the workflow on a fixed schedule. No input data.


2. Fetch Future Events

Property Value
Type n8n-nodes-base.googleCalendar v1.3
Operation Get All
Calendar danny@blk-bx.uk
Time Min Expression (current time)
Credential Google Calendar OAuth2

Fetches all future events from the primary calendar. Returns the full Google Calendar event object for each.


3. Loop Through Events

Property Value
Type n8n-nodes-base.splitInBatches v3
Batch size 1 (default)

Processes events one at a time to allow per-event dedup checking and classification.