I’ve been involved in events management for over a decade, and have spent far too much of my time copying event data from one place to another. Generally, when you organise an event, you need to know:
The name of the event
A description of it (could be a sentence, could be 2 pages long)
A start time
An end time, if you’re feeling fancy
Where it is
And sometimes some other optional stuff: Who the audience is, who the organisers are, what series it’s a part of, etc.
I have spent a lot of time copying that information from one place to another. From the draft in Google Docs / Notion to Asana to Eventbrite to Webflow to Mighty Networks to Slack etc. It’s a very boring job.
Last year I built a cute little automation to help my company out with this. The problem was that our events weren’t making their way to our website - sometimes due to the team’s capacity, sometimes just due to access to Webflow, our website builder. So the automation I made allows anyone in our company to post a link to that event in a special Slack channel, and it will use the Eventbrite API to extract all the data from the link, and send the formatted data over to Webflow. a 5 - 10 minute admin tasks becomes a 5 second one.
But something I was asked about was if I could do it for non-Eventbrite links. Eventbrite makes it easy because it has an API - but if someone is hosting an event on their own site or using another provider, how could we get that data?
Turns out - it’s possible with Zapier agents and a bit of light scraping. Here’s how I did it:
Firstly, I wanted to be able to trigger this automation from anywhere I wanted - eg a form in Webflow, from Slack, from a chrome extension. So I made the trigger in Zapier a webhook. This webhook receives a URL (to the event) and an optional email, if the user wants to share that too.
Then, I figured if the event is on Eventbrite, may as well just use their API as it’s right 100% of the time. So that part was straightforward.
If the URL contains “eventbrite”
Extract the unique id of the event using RegEx - \d{9,14} (thanks ChatGPT)
Send that ID to Eventbrite’s API
Get all the event data back
Bob’s your uncle.
(I’m using Stacker as my database because I wanted to create a very simple way to view events and approve them before they hit my site.)
But, if it’s not Eventbrite, it take the URL that was submitted and sends it over to my AI agent.
This Agent has a very basic prompt, combined with the output in a standardised JSON format, shown below.
{
"event_name": "",
"start_datetime": "", // ISO 8601 format e.g. "2025-06-15T18:00:00+01:00"
"city": "",
"detailed_address": "", // eg the first line of the address
"description": "",
"banner_url": "",
"submitted_by": "", // the email from the original webhook
"original_event_url": "",
"free": "" // true or false depending on if the event is free or not
}
This agent then sends the data over to Stacker, where I can approve it.
So, to see it in action - here’s a form where you can submit the raw URL.
Here’s the data that’s held on that page:
.. and here it is, about 30 seconds after submitting the form, in my Stacker interface. So I can now check it over to make sure it’s all correct (it is), and click one button to get it on to Webflow.
I love this next level of automation that AI is enabling, allowing me to not have to do the work that I really loathe doing. For people who curate content this kind of time saving is such a huge benefit. I’m not keen on using AI to generate content, but to format data? Hell yes.
A few notes:
It definitely still sometimes gets a bit confused and just says “no”. I keep the raw URL submissions all saved so I wouldn’t miss anything.
I like the idea of building a chrome extension for this - so if I see an event I want to save, one click sends it to my database. I also generally like working in Slack, so a little /slash command there to trigger it would be cool.
One other challenge is that sometimes a single page will list events for several days - IE “this event is happening at 6pm from March 5th - 20th”. This would definitely cause the agent to get confused. But - I think there’s scope for a secondary agent that decides whether or not an event is a one off or a series - and then treats it appropriately. IE creates one event or 15.