RMS Connect

Table of Contents

Installation

Current Version: 8.2.0 | Requires Rock RMS v13+ | WordPress 5.8+ | PHP 7.4+

Requirements

  • WordPress 5.8 or higher
  • PHP 7.4 or higher
  • Rock RMS v13 or higher
  • Elementor (free or Pro) — required for widgets
  • An active Rock RMS REST API key with appropriate permissions

Install Steps

  1. Download the plugin .zip file from your confirmation email or Graywell Tech account dashboard.
  2. In your WordPress admin, go to Plugins → Add New → Upload Plugin.
  3. Choose the downloaded .zip and click Install Now.
  4. Click Activate Plugin once installation completes.
  5. Navigate to RMS Connect in your WordPress admin sidebar to begin setup.

Activating Your License (Pro Only)

If you purchased RMS Connect Pro, go to RMS Connect → License tab, enter your license key, and click Activate License. This unlocks Content Channels, Field Mapping, Messages widget, REST API access, and priority support.

Free users: Skip this step — Events and Groups sync work without a license key.

Establishing the Connection

Go to RMS Connect → Connection tab and fill in:

  • Rock RMS URL — Your internal Rock RMS server address (e.g., https://rock.mychurch.com)
  • Public Rock RMS URL — The public-facing URL (e.g., https://my.mychurch.com)
  • Rock RMS API Key — See below for how to retrieve this

Finding Your API Key in Rock RMS

  1. Log in to Rock RMS as an administrator.
  2. Go to Admin Tools → Security → REST Keys.
  3. Click + Add to create a new key, or copy an existing one.
  4. Ensure the key has permissions to read Calendars, Groups, Content Channels, and other data you want to sync.
  5. Copy the key value and paste it into the Connection tab.

Click Save Changes, then Test Connection to verify.

Configuring Groups

Go to RMS Connect → Groups tab.

  • Group Folder IDs — In Rock RMS, go to People → Groups, find the parent group folder(s) you want to sync, and copy their IDs from the URL or group details.
  • Default Group Sign-Up Form ID — Enter the Rock RMS form ID used for group sign-up requests.
  • Select Groups — After saving your folder IDs, use the checkboxes to choose which individual groups appear on your site.

Click Save Changes, then trigger a manual sync to pull the latest group data.

Setting Up Events

Selecting Your Calendar

  1. Click Refresh Calendars to pull your available calendars from Rock RMS.
  2. A list of calendars will appear — check the box next to the calendar(s) you want to sync.
  3. Click Save Changes.

Grace Period

The Grace Period setting controls how many days after an event ends it remains visible on your site. Useful for events with recordings or follow-up content. Set to 0 to remove events immediately after they end.

Deleted Event Handling (v8.1.3+)

When an event is deleted from Rock RMS, RMS Connect will automatically remove it from your WordPress site on the next sync. Configure whether deleted events are permanently deleted or moved to draft.

Safe Sync Guard (v8.1.3+)

Prevents a sync from accidentally wiping all your events if Rock RMS returns an empty or error response. If the API returns fewer events than expected, the sync will pause and alert you rather than deleting your existing events.

Content Channels (Pro)

Go to RMS Connect → Content Channels tab (Pro license required).

  • Select which Rock RMS Content Channels to import as custom posts in WordPress.
  • Each content channel item is created as a WordPress custom post type — great for sermons, announcements, blog posts, or other content from Rock RMS.
  • Use the Field Mapping tab to control which Rock RMS fields map to which WordPress fields.

Refresh Schedule

Go to RMS Connect → Refresh Schedule tab to control how often your site syncs with Rock RMS.

  • Auto Sync Interval — Set how frequently (e.g., hourly, every 6 hours, daily) WordPress pulls fresh data from Rock RMS.
  • Manual Sync — Click Sync Now at any time to trigger an immediate sync of all enabled data types.
  • The last sync timestamp is displayed so you can confirm data is current.

Free vs Pro Features

FeatureFreePro
Events Sync
Groups Sync
Content Channels Sync
Messages Widget
Field Mapping
REST API Access (all CPTs)
Priority Support

Elementor Widgets

Events Widget (Free)

Displays a list or grid of upcoming events from your synced Rock RMS calendar. Find it in Elementor by searching “RMS”. Settings include template style, number of events, which fields to show, button settings, and custom fonts/colors.

Groups Widget (Free)

Displays a filterable directory of groups from Rock RMS. Settings include template style, card width, elements to display, number of groups, filter options, and custom colors/fonts/layout.

Messages Widget (Pro)

Displays sermon messages or other media content from Rock RMS. Requires Pro license. Configure series, speaker, date range, and display options in the widget settings panel.

Field Mapping (Pro)

Go to RMS Connect → Field Mapping tab (Pro required). Field Mapping controls exactly which Rock RMS data fields are imported into WordPress and how they’re named. Useful when you need custom Rock RMS attribute fields on your site, want to rename fields to match your terminology, or are building custom page templates that reference specific field names.

REST API Access (Pro, v8.1.3+)

With a Pro license, all synced custom post types (events, groups, content channels) are exposed via the WordPress REST API, enabling headless setups, mobile apps, or third-party tools to query your synced Rock RMS data. Access at: https://yoursite.com/wp-json/wp/v2/[post-type]

Shortcodes

Use these shortcodes to display Events and Groups on any page or post without Elementor. They work in the Gutenberg shortcode block, Beaver Builder, Divi, Bricks, WPBakery, Classic Editor, and anywhere else WordPress renders shortcodes.

Syntax: [shortcode_name attribute="value" attribute2="value2"]

[rms_events]

Displays events synced from Rock RMS. Supports two templates:

Cards (default) — responsive image-card grid including event image, category badge, title, excerpt, date/time/location, and action buttons.

[rms_events]
[rms_events columns="2" limit="6"]
[rms_events category="students" show_filters="no"]

Table — compact chronological list with a coloured date block on the left and event details on the right.

[rms_events template="table"]
[rms_events template="table" limit="10" show_filters="no"]

[rms_events] Attributes

AttributeValuesDefaultDescription
template"cards" | "table""cards"Display layout. Cards = image grid. Table = chronological list.
limitinteger-1Max events to show. -1 = all.
categoryslug stringemptyPre-filter to a single event category by slug.
columnsinteger3Grid columns. Cards template only. Collapses to 2 on tablet, 1 on mobile.
show_filters"yes" | "no""yes"Show or hide the category filter pills and sort buttons.
filter_all_textstring"All"Label for the “show all” filter pill.
show_title"yes" | "no""yes"Show the event title.
show_excerpt"yes" | "no""yes"Show excerpt / description snippet. Cards only.
excerpt_lengthinteger20Number of words in excerpt. Cards only.
show_badge"yes" | "no""yes"Show category badge on card images. Cards only.
show_recurrence"yes" | "no""yes"Show the “Recurs: …” label for recurring events.
show_date"yes" | "no""yes"Show the event date.
show_time"yes" | "no""yes"Show the event start time.
show_location"yes" | "no""yes"Show the event location / room.
show_buttons"yes" | "no""yes"Master toggle — shows or hides both action buttons.
show_info_button"yes" | "no"inherits show_buttonsShow/hide the “More Info” button individually.
show_ical_button"yes" | "no"inherits show_buttonsShow/hide the “Add To Calendar” button individually.
button_textstring"More Info"Custom label for the info / detail button.
ical_button_textstring"Add To Calendar"Custom label for the iCalendar download button.

[rms_events] Examples

# Default — cards grid, all events, 3 columns
[rms_events]

# Table / list view
[rms_events template="table"]

# 2-column cards, limited to 6 events
[rms_events columns="2" limit="6"]

# Pre-filtered to a category, no filter bar
[rms_events category="all-church" show_filters="no"]

# Custom button labels
[rms_events button_text="Learn More" ical_button_text="Save the Date"]

# Hide only the More Info button, keep Add to Calendar
[rms_events show_info_button="no"]

# Hide both buttons
[rms_events show_buttons="no"]

# Minimal card — no excerpt or recurrence
[rms_events show_excerpt="no" show_recurrence="no"]

# Table view, 10 events, pre-filtered to a category
[rms_events template="table" limit="10" category="cj-students" show_filters="no"]

# Custom "All" label on the filter bar
[rms_events filter_all_text="View All Events"]

[rms_groups]

Displays a grid of small groups synced from Rock RMS. Renders as vertical cards with an optional image header, title, description, meeting schedule, location, and a CTA button.

[rms_groups]
[rms_groups columns="2" limit="20"]
[rms_groups exclude="internal,staff"]
[rms_groups show_media="no" show_badge="no"]
[rms_groups show_schedule="no" show_location="no" show_button="no"]

Note: The Elementor widget’s advanced meta filters (filter by day, campus, etc.) are not available as shortcode attributes — they require the Elementor repeater interface. All other options are supported.

14 attributes available:

Layout & Query

AttributeValuesDefaultDescription
limitinteger-1Max number of groups to display. -1 = all.
excludecomma-separated slugsemptyExclude groups by category slug. e.g. exclude="internal,staff"
columnsinteger3Number of grid columns on desktop. Collapses to 2 on tablet, 1 on mobile.

Filter Bar

AttributeValuesDefaultDescription
show_filters"yes" | "no""yes"Master toggle — show or hide the entire filter/search bar.
show_search"yes" | "no""yes"Show or hide the group search box (requires show_filters="yes").
search_placeholderstring"Search groups..."Placeholder text inside the search input.

Card Content

AttributeValuesDefaultDescription
show_media"yes" | "no""no"Show or hide the card image header.
show_badge"yes" | "no""yes"Show or hide the parent group name badge on the image (only relevant when show_media="yes").
show_title"yes" | "no""yes"Show or hide the group title.
show_content"yes" | "no""no"Show or hide the group description/content.
show_schedule"yes" | "no""yes"Show or hide the meeting schedule (day & time).
show_location"yes" | "no""yes"Show or hide the meeting location.

Button

AttributeValuesDefaultDescription
show_button"yes" | "no""yes"Show or hide the CTA button.
button_textstring"Join Group"Label for the CTA button.

Examples:

# Default — all groups, 3 columns, all content visible
[rms_groups]

# 2-column grid, limited to 20 groups
[rms_groups columns="2" limit="20"]

# No search bar, no filter tabs
[rms_groups show_filters="no" show_search="no"]

# Exclude internal and staff categories
[rms_groups exclude="internal,staff"]

# Custom search placeholder
[rms_groups search_placeholder="Find a group near you"]

# Hide the image header and badge
[rms_groups show_media="no" show_badge="no"]

# Minimal card — title and description only, no footer
[rms_groups show_schedule="no" show_location="no" show_button="no"]

# Custom button label
[rms_groups button_text="Learn More"]

# 4 columns, no description, custom button
[rms_groups columns="4" show_content="no" button_text="Sign Up"]

# Full options: limited, custom columns, search, custom placeholder, custom button
[rms_groups limit="50" columns="2" show_search="yes" search_placeholder="Search by name or topic" button_text="Join Now"]

Shortcode CSS Customization

Shortcode output ships with neutral gray defaults. Override in your theme’s stylesheet or a custom CSS plugin. Elementor widget colors are set in the Elementor Style panel and are unaffected by the CSS below.

Events — Cards

/* More Info button */
.event-card-info-button button { background-color: #yourcolor; color: #fff; border-radius: 0 0 0 10px; }

/* Add To Calendar button */
.event-card-ical-button button { background-color: #yourcolor; color: #fff; border-radius: 0 0 10px 0; }

/* Card container */
.event-item { box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.13); background-color: #fff; border-radius: 15px; }

/* Title, excerpt, meta */
.event-title a    { color: #47484d; font-size: 1.1rem; font-weight: 700; }
.event-excerpt    { color: #47484d; font-size: 1rem; }
.event-date,
.event-location   { color: #7a7a7a; font-size: 12px; }
.event-badge      { background-color: #f7f2e7; color: #47484d; }

Events — Table

/* Date block */
.rms .date-container-inner { background-color: #yourcolor; border-radius: 10px; padding: 12px 16px; }
.date-block-month { color: #fff; font-size: 0.75rem; }
.date-block-day   { color: #fff; font-size: 1.5rem; }

/* Title and meta */
.event-minimum-title a { color: #47484d; font-weight: 700; }
.event-minimum-date,
.event-minimum-time,
.table-location    { color: #7a7a7a; font-size: 12px; }

/* Row separator */
.individual-event-item { border-bottom: 1px solid #f0f0f0; padding: 15px 0; }

Filter Pills

.filter-buttons-container button[uk-filter-control] { background-color: #yourcolor; color: #fff; border-radius: 5px; padding: 5px 15px; }

Group Cards

/* Card container */
.rms .group-item { box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.13); background-color: #fff; border-radius: 15px; }

/* Image header height */
.group-image.card-header { height: 160px; background-color: #cccccc; }

/* Badge on image */
.group-badge { background-color: #f7f2e7; color: #47484d; }

/* Title and description */
.group-title          { color: #47484d; font-weight: 700; }
.rms .group-details   { color: #47484d; font-size: 0.9rem; }

/* Footer separator and meta */
.group-card-footer    { border-top: 1px solid #f7f2e7; }
.group-day,
.group-location       { color: #7a7a7a; font-size: 12px; }

/* CTA button */
.rms .card-footer-right .button { background-color: #yourcolor; color: #fff; border-radius: 5px; padding: 8px 14px; }

Grid columns are set automatically via the columns attribute — no CSS needed. To override for a specific container:

#my-section .event-cards      { grid-template-columns: repeat(4, 1fr) !important; }
#my-section .group-card-items { grid-template-columns: repeat(4, 1fr) !important; }

Troubleshooting

Data isn’t syncing

  • Go to Connection tab and click Test Connection. If it fails, verify your Rock RMS URL and API key.
  • Confirm the API key has read permissions for the data types you’re syncing.
  • Check that your Rock RMS server is accessible from your WordPress hosting (not blocked by firewall).
  • Try a manual sync via the Refresh Schedule tab.

Events not appearing

  • Confirm you clicked Refresh Calendars and checked at least one calendar.
  • Verify the selected calendar has upcoming events in Rock RMS.
  • Check the Grace Period setting — past events may still show if it’s set high.
  • Trigger a manual sync.

Groups not appearing

  • Confirm you’ve entered valid Group Folder IDs from Rock RMS.
  • Make sure at least one group is checked in the selection list.
  • Trigger a manual sync.

License won’t activate

  • Double-check the exact license key from your purchase email.
  • Ensure your server can reach the Graywell Tech license server (outbound HTTP not blocked).
  • Contact support if the key was activated on another domain.

Safe Sync Guard triggered

  • The API returned fewer events than your minimum threshold — possibly a temporary Rock RMS issue.
  • Wait a few minutes and try a manual sync.
  • If Rock RMS is returning data normally, adjust the Safe Sync Guard threshold in settings.

Getting More Help

Email [email protected] or book a free 30-minute call and we’ll walk through your setup with you.