If you organize a Meetup group with recurring events—monthly meetings, weekly workshops, quarterly socials—you know the pain of manually creating dozens of similar events. Each one requires clicking through the same forms, copying descriptions, selecting venues, and hoping you didn't fat-finger a date. Multiply that by several event series across multiple groups, and you've lost hours to repetitive busywork.
meetup-scheduler automates this. Define your events in a JSON file, use patterns like "first Thursday" or "third Saturday" to generate dates, and batch-create them as drafts for review before publishing. What used to take an afternoon now takes minutes.
- Community organizers running recurring meetups (user groups, hobby clubs, networking events)
- Meetup Pro subscribers managing multiple groups with similar event structures
- Anyone tired of the Meetup web UI for scheduling more than a handful of events
You'll need organizer permissions on your Meetup group(s) to create events.
- Create multiple Meetup events from a single JSON file
- JSON Schema validation for event definitions
- Recurrence pattern support (e.g., "first Thursday of each month")
- Venue aliases for quick reference
- Draft mode for review before publishing
- Markdown summary generation
uv tool install meetup-schedulerOr install from source:
git clone https://github.com/things-nyc/meetup-scheduler.git
cd meetup-scheduler
uv tool install -e .If you prefer not to install globally, you can run commands from the source
directory using uv run meetup-scheduler instead.
Before using meetup-scheduler, you need to authenticate with your Meetup account:
meetup-scheduler loginThis opens your browser to log in to Meetup and grant access. Your credentials are stored securely and refreshed automatically.
To remove stored credentials:
meetup-scheduler logout# Initialize your project directory
meetup-scheduler init .
# Log in to your Meetup account
meetup-scheduler login
# Sync groups and venues from Meetup
meetup-scheduler sync
# Create events from a JSON file (dry-run first)
meetup-scheduler schedule events.json --dry-run
# Create events as drafts
meetup-scheduler schedule events.jsonYou can also initialize a new directory in one step from anywhere:
meetup-scheduler init ~/my-meetup-project
cd ~/my-meetup-project| Command | Description |
|---|---|
login |
Authenticate with Meetup (opens browser) |
logout |
Remove stored Meetup credentials |
init [PATH] |
Initialize project directory with skeleton files |
config |
Get or set configuration values |
sync |
Fetch group/venue data from Meetup API |
schedule |
Create events from JSON file |
generate |
Generate event JSON from recurrence pattern |
readme |
Display this README (use --raw for markdown source) |
| Option | Description |
|---|---|
-v, --verbose |
Increase verbosity (can repeat: -vv) |
-q, --quiet |
Suppress non-error output |
--debug |
Enable debug mode (show stack traces) |
--config PATH |
Override config file location |
--dry-run |
Show what would happen without making changes |
Boolean options can be explicitly negated with --no- prefix (e.g., --no-debug,
--no-dry-run). This is useful for overriding defaults or config file settings.
Configuration is stored in platform-specific locations:
- Linux:
~/.config/meetup-scheduler/ - macOS:
~/Library/Application Support/meetup-scheduler/ - Windows:
%APPDATA%\meetup-scheduler\
Project-specific settings go in meetup-scheduler-local.json in your
project directory.
MIT License. See LICENSE.md for details.
This project is maintained by The Things Network New York.
If you find this helpful, please support The Things Network New York by joining, participating, or donating.