This project is no longer used or developed by HackGreenville Labs.
However, an replacement Events API has been integrated into our HackGreenville.com application.
- Thanks to @Nunie123 for the initial development, and to @ramona-spence for sustaining the previous Python implementation.
- Thanks to @bogdankharchenko and HackGreenville Labs for migrating the Python implementation to PHP / Laravel
This Python + Pipenv + Flask application previously provided an endpoint to return event data for all organizations listed in the organizations API if they host events on:
- Meetup.com - example API call
- Eventbrite.com - example API call
Meeting services currently not supported: Facebook, Nvite, Open Collective, and custom websites.
The events listed on supported event services are pulled, combined, and re-published in JSON format or JSON+LD every hour at our Events API endpoint. Additional filtering options are described below.
This project has been replaced, so join us at Events API for get involved in the PHP / Laravel implementation.
There were three ways to run the appliation (locally, locally with Docker, and web server), but start by reading our CONTRIBUTING.md.
By default, results were returned in JSON format. If an Accept: application/json+ld
header is sent to the API, then it will reply with Schema.org Event markup in JSON+LD format.
- Get all upcoming events by calling /api/gtc
- Get events within a date range by calling /api/gtc?start__date=2018-01-01&end__date=2018-02-01
- the API defaults to providing only upcoming meetings, unless a
start_date
andend_date
are specified - "past events" are limited by the
[past_events] max_days_in_the_past
set in the config.ini file - "US/Eastern" is assumed as the timezone when a date filter is provided
- the API defaults to providing only upcoming meetings, unless a
- Get events with a specific organizations tag by calling /api/gtc?tags=1 - "tags" are applied to an organization in the organizations API. Currently, the organizations API only provides integer tag IDs, such as with this tag #1, representing OpenWorks hosted events, https://events.openupstate.org/api/gtc?tags=1
The format of the JSON that returns is:
[{
"event_name": "Code For Greenville Work Night",
"group_name": "Code for Greenville",
"group_url": 'https://hackgvl.org',
"venue": null,
"url": "https://www.meetup.com/Code-for-Greenville/events/qwpbksyfchbdb/",
"time": "2023-05-02T22:00:00Z",
"tags": "1",
"rsvp_count": 0,
"created_at": "2021-05-27T02:26:52Z",
"description": "Come and Design, Write Copy, Hack on the Code for Greenville Projects. If you are attending for the first time, we'll have an organizer to explain the active projects. ",
"uuid": "9a1c536a-c0a8-4886-b327-435ec1382dd7",
"nid": "7",
"data_as_of": "2022-05-20T02:40:11Z",
"status": "upcoming",
"service_id": "qwpbksyfchbdb",
"service": "meetup"
}]
- Thanks to @Nunie123 for the initial development, and to @ramona-spence for sustaining the previous Python implementation.
- Thanks to @bogdankharchenko for migrating the Python implementation to PHP / Laravel
- All timestamps are in UTC.
- The event description fields may include HTML markup. This application does not sanitize those fields and it's unclear if the upstream source should be trusted, so sanitize any output to avoid malicious XSS.
Thanks goes to these wonderful people (emoji key):
Ed Nunes 🤔 💻 |
Jim Ciallella 💻 🚧 🚇 📆 👀 🐛 📖 💬 |
Ramona 💻 🤔 📖 🐛 |
Brett Snipes 💻 🐛 |
Olivia Sculley 💻 🚇 📖 🤔 📦 |
BigBlueHat 🤔 💬 |
Jeremy Wight 🐛 |
Matthew Thornton |
This project follows the all-contributors specification. Contributions of any kind welcome!