How I Use Python to Extract Meeting Details from Plain Text Using "spaCy" and "dateparser"
Fidel V. the Mad Scientist

How I Use Python to Extract Meeting Details from Plain Text Using "spaCy" and "dateparser"


Hello my fellow technomancies and code conjurers; it me, Fidel the Mad Scientist, as the reigning architect of controlled chaos, I've set forth on a noble mission: to harness the arcane power of Python and teach machines to decipher the madness of human meeting notes. My focus point is simple yet diabolically efficient:

To automate the extraction of meeting details—names, dates, platforms—from raw, messy, unpredictable text using the unholy trinity of spaCy, dateparser, and pure Python brilliance.

By the end of this experiment, you’ll wield the power to summon structured data from unstructured gibberish. You shall tame the wild chaos of calendars and build the foundation for smarter, AI-powered scheduling systems...


My Workable Python Script

import dateparser
from dateparser.search import search_dates
import spacy

# Load spaCy English model
nlp = spacy.load("en_core_web_sm")

# Input text
text = """
Fidel the Mad Scientist has one meeting on April 7th, 2025 at 5:00pm 
and another meeting on 4/18/2025 at 3:00pm. 
Both meetings will be held on Microsoft Teams.
"""

# Step 1: Extract dates using dateparser
date_results = search_dates(text)

# Step 2: Extract person names using spaCy (excluding known platforms)
doc = nlp(text)
known_platforms = {"Microsoft Teams", "Zoom", "Google Meet", "Teams", "Microsoft"}
host_names = [
    ent.text for ent in doc.ents
    if ent.label_ == "PERSON" and ent.text not in known_platforms
]

# Fallback: Assign based on contextual cues if no PERSON entity is found
if not host_names:
    if "Fidel" in text:
        host_names = ["Fidel"]
    else:
        host_names = ["Unknown"]

# Step 3: Extract platform mentions from the text
platform_mentions = [platform for platform in known_platforms if platform in text]

# Output host name(s)
print("Host Name(s):")
for name in set(host_names):
    print(f"- {name}")

# Output extracted dates
print("\nMeeting Dates:")
if date_results:
    for original, parsed in date_results:
        print(f"- '{original}' → {parsed}")
else:
    print("No dates found.")

# Output meeting platforms
print("\nMeeting Platform(s):")
if platform_mentions:
    for platform in platform_mentions:
        print(f"- {platform}")
else:
    print("No platform found.")        

------------------------------------------------------------------------------------------------------

Output:

Host Name(s):
- Fidel

Meeting Dates:
- 'April 7th, 2025 at 5:00pm' →  2025-04-07 17:00:00
- '4/18/2025 at 3:00pm' →  2025-04-18 15:00:00

Meeting Platform(s):
- Microsoft Teams        



How I Use Python to Extract Meeting Info with spaCy and dateparser

Python is an incredibly powerful language for automating everyday tasks, especially when dealing with unstructured data like emails, meeting notes, or plain text. In this example, I used three powerful Python tools—spaCy, dateparser, and dateparser.search—to extract useful meeting information from natural language text.

What’s Used and Why?

spaCy – Natural Language Processing (NLP)

  • Extracts entities like names (PERSON), dates, times, organizations, etc.
  • Handles complex grammar structures and contextual meaning.
  • Easy to use with pre-trained language models like en_core_web_sm.

dateparser – Understand Natural Language Dates

  • Parses messy or human-friendly date formats like:
  • Supports multiple languages and timezones.

search_dates – Scans Text for Multiple Date Mentions

  • Automatically finds all date strings in text and parses them into datetime objects.


Other Ways You Can Use These Libraries

1. Extract All Dates from Emails or Notes

Useful for scheduling, summarization, or setting up reminders.

2. Generate Meeting Summaries

  • Combine with spaCy to extract person names, topics (like ORG, GPE, or EVENT), and date/times to generate readable meeting summaries.

3. Sync with Calendars

  • Use the parsed dates to automatically:

4. Create Structured JSON Records

Transform unstructured meeting notes into structured data:

{
  "host": "Fidel",
  "dates": ["2025-04-07T17:00:00", "2025-04-18T15:00:00"],
  "platform": "Microsoft Teams"
}
        

5. Feed into Chatbots or Virtual Assistants

  • Enhance your AI agent’s ability to:

6. Data Analysis on Scheduling Habits

  • Use with pandas to analyze meeting frequency, time-of-day trends, or host participation over time.

7. Build an AI-Powered Scheduling Tool

  • Combine with UI frameworks (like Streamlit or Flask) to let users paste in meeting notes and get:


Tools for Further Enhancement

Task Tool Timezone conversion pytz, zoneinfo Frontend input Streamlit, Tkinter, or Flask Data storage SQLite, MongoDB, or CSV Export calendar ics, icalendar Python packages AI summary OpenAI, LangChain, or transformers

-----------------------------------------------------------------------------------------------------

With just a few lines of Python using spaCy and dateparser, you can automate the extraction of dates, hosts, and platforms from any human-written content. Whether you're automating your own scheduling, enhancing CRM systems, or building intelligent agents, these libraries offer a lightweight, powerful foundation.


Consultant,

Fidel V – The Mad Scientist

Architect. Innovator, Technology Analyst

Design | Implement | Integrate | AI | Automate | Future-proof Cybersecurity



To view or add a comment, sign in

More articles by Fidel .V

Insights from the community

Others also viewed

Explore topics