# Meetup Settings

The Meetup integration lets you automatically publish your group walks to a connected Meetup group, so when a walk is approved on NGX-Ramblers it appears as a Meetup event for members to RSVP to.

> **Important: The Meetup API integration is currently unavailable.**
>
> The Meetup public API now requires a [Meetup Pro subscription](https://www.meetup.com/pro/), which is prohibitively expensive for most Ramblers groups. We are tracking a replacement approach that avoids the API entirely - see [Issue #230: feat(meetup): add manual paste/scrape publishing option to avoid Pro subscription](https://github.com/nbarrett/ngx-ramblers/issues/230) for progress.
>
> In the meantime, the configuration UI is still present and you can save settings, but walks will not actually be synchronised to Meetup. If you rely on Meetup for your walks programme, you will need to manage events directly on Meetup for now.

## When This Feature Applies

The Meetup integration is independent of your group's Walk Population mode (Local or Walks Manager) - the Publish to Meetup option appears on individual walks regardless of where the walk data comes from.

It does, however, depend on having an active Meetup group and an OAuth-authorised connection between NGX-Ramblers and Meetup. Once the API integration is restored (or replaced with a paste/scrape alternative as per [issue #230](https://github.com/nbarrett/ngx-ramblers/issues/230)), this is the part that will need to be set up.

## How It Works (When the API Is Available)

There are three layers to the Meetup integration:

1. **System-level OAuth setup** - one-time admin task to authorise NGX-Ramblers to talk to your Meetup group
2. **Group-level publishing defaults** - default values for description, RSVP limit, and announce flag that apply to every walk
3. **Per-walk publishing** - walk leaders enable Meetup publishing on individual walks and optionally override the defaults

When a walk with Meetup publishing enabled is saved, the system creates or updates a corresponding Meetup event. When publishing is disabled or the walk is deleted, the Meetup event is removed.

## Setting Up the Meetup Connection

This is in **Admin > System Settings > External Systems > Meetup**:

1. Enter your **Group URL**, **Group Name**, and **API URL**
2. Enter your **Client ID** and **Client Secret** from Meetup's OAuth app registration (use the **View OAuth Clients** link to find or create one at meetup.com)
3. Set the **Client Redirect URL** to your site's callback URL
4. Click **Initiate Request Authorisation** to start the OAuth flow
5. Authorise NGX-Ramblers on Meetup
6. The access token and refresh token are captured automatically when you return
7. Click **Save**

The refresh token is used to keep the connection alive without you needing to reauthorise.

## Configuring Publishing Defaults

This is in **Admin > Walks > Meetup Settings**, with two sub-tabs:

### Maintain Description Content

Create reusable description prefixes that can be selected per walk. These are stored as Content Text snippets and let you maintain a consistent intro for your Meetup events without retyping it on every walk.

### Publishing Defaults

Set the global defaults that apply to new walks:

- **Description prefix** - which Content Text snippet to use as the default
- **Publish status** - whether new events should be created as Draft or Published
- **RSVP limit (guest limit)** - how many guests each member can bring (1-10)
- **Announce checkbox** - whether to announce the event to the Meetup group on publication

## Publishing an Individual Walk to Meetup

When editing a walk, walk leaders see a **Meetup** tab:

1. Tick **Publish this walk to Meetup**
2. Optionally override the defaults:
   - Choose a different description prefix
   - Change publish status (draft/published)
   - Adjust the RSVP limit
   - Set the announce flag
3. Edit the walk-specific Meetup description text (which gets prefixed with the chosen Content Text snippet)
4. Save the walk

When the walk is saved (and the API integration is working), the system:

- Checks if a Meetup event already exists for this walk
- If yes, updates the event with the latest details
- If no, creates a new Meetup event
- Stores the Meetup event URL on the walk so it appears as a "View on Meetup" link
- Matches or creates the venue on Meetup based on the walk's start location

If you untick **Publish this walk to Meetup** and save, the corresponding Meetup event is deleted.

## Permissions

- **System OAuth setup** - requires System Admin
- **Publishing defaults** - requires Walk Admin
- **Per-walk Meetup settings** - requires Walk Admin or the walk leader for that walk

## Current Status

Until the Meetup API integration is restored (or replaced - see [issue #230](https://github.com/nbarrett/ngx-ramblers/issues/230)):

- You can still configure all the settings on this page
- The Publish to Meetup checkbox still appears on individual walks
- Saving a walk will not create or update a Meetup event
- Existing Meetup events that were published before the API became unavailable are unaffected, but will not be updated when the corresponding NGX-Ramblers walk is updated

## Related Guides

- [Add Walk Slots](https://ngx-ramblers.org.uk/how-to/committee/walks/add-walk-slots) - create walks ready for leaders to claim
- [Walk Leader Contact Settings](https://ngx-ramblers.org.uk/how-to/committee/walks/leader-contact) - configure how visitors contact walk leaders
- [Ramblers Walk Export](https://ngx-ramblers.org.uk/how-to/committee/walks/export) - export walks to upload to Ramblers Walks Manager