Back to DocsRecipe

NL → Calendar Meeting Booker

Accept natural-language meeting requests via chat, resolve time zones, check availability, and create calendar events — all in one flow.

Overview

This recipe wires a chat interface to a calendar backend. A user types “Schedule 30 min with Alice tomorrow after 2pm” and the system resolves Alice's availability, picks a slot, and returns a confirmed event link.

Ingredients

  • LLM endpoint (OpenAI / Anthropic / Groq)
  • Google Calendar or Outlook API credentials
  • Time-zone database (IANA)
  • Availability store (DB or cache)

Flow

  1. Parse NL input → extract attendees, duration, window.
  2. Resolve each attendee's time zone from profile.
  3. Query free/busy for the window across all attendees.
  4. Select the earliest mutual slot.
  5. Create calendar event with conferencing link.
  6. Return confirmation with date, time, and join link.

Edge Cases

  • No mutual slot → propose nearest alternatives.
  • Ambiguous attendee → ask for disambiguation.
  • Past window → reject with hint.
  • API rate limits → queue and retry with backoff.

Example Prompt

System: You are a meeting scheduler. Extract:
- attendees: string[]
- duration_minutes: number
- window_start: ISO8601
- window_end: ISO8601
- title: string | null

User: "Set up a 45-min sync with Bob and
Carol next Tuesday between 9 and noon"

Ready to build? Grab the full source in Recipes and wire it to your own calendar provider.