# SW Events Basic — AI Agent Reference **Module name:** SW Events Basic **Use this document when:** The user asks about an events / workshops / RSVP list on a page, an in-module RSVP form in a popup, Google Sheet or CSV event listings, hide-past dates, Form Box Pattern on the RSVP modal, resubmit cooldown, or SW Events Advanced (parked — do not invent that module). **Master version number (check `module.html`):** 2026.09.11.20.50 --- ## 1. Overview **SW Events Basic** is the page-level event listing module. It shows upcoming events as **always-open Style 1 cards** (image, title, datetime, location, teaser, RSVP on the right). It is **not** an accordion. An optional HubSpot form lives in an RSVP popup. **Event Source (exclusive — pick one):** - **Inline Repeater (default)** — add event rows in the module (best for a few events). - **Google Sheet** — load from a shared spreadsheet (marketers update without republishing HubL). - **CSV File** — load from a File Manager CSV (same columns as the Sheet). **Do not use HubDB** in this module. HubDB-backed events is **SW Events Advanced** (later; not shipped). Do not invent HubDB fields or an events hub. **Not this module:** A standalone form with no event list → **SW Form**. Form beside image/copy → **SW Pillar Section** (Secondary = Form). Job listings → **SW Careers Basic**. Page FAQs → **SW FAQs Basic**. ITT listing+detail HubDB events is a different product — do not mix. --- ## 2. Content Tab - **Enable Module** — On/off. - **Heading Panel** — Optional headings, rich text, and buttons above the Content Area. - **Content Area** — Optional intro above the event list. Heading defaults are **empty**. - **Footer Content** — Optional headings, rich text, and buttons below the list. - **Event Source** — Inline Repeater / Google Sheet / CSV File (field name still `job_source_type`). - **Event Items** — Repeater when source = Inline Repeater (field name still `job_items`). Each row: title, event_date, datetime, location, image, teaser, rsvp_url, rsvp_label. - **Google Sheet Settings** — Share link when source = Google Sheet. - **CSV File** — File picker when source = CSV File. - **Show Form** — Default on. Hides/shows the RSVP form (used when RSVP opens the popup). An empty Form picker still renders HubSpot’s default `{% form %}`. - **Form** — HubSpot form picker (`form_id` default null). Wrapper id is **`#events-form-{{ name }}`** (instance-specific so it survives modal hoist). - **Form intro** — Optional rich text in the popup. There is **no** Form Headings repeater; the modal title is the event title. - **Resubmit cooldown** — Optional. Off by default. Same pattern as SW Form. Needs a **picked Form** (empty picker cannot key localStorage). Inline thank you only. Storage prefix `swEventsBasicFormResubmitCooldown:`. - **When no events** — Show empty message or hide the list area. --- ## 3. Style Tab ### Module Settings - **Module Outer Spacing** — Default padding **50 / 20 / 50 / 20** (top/right/bottom/left). - **Max Module Outer Width**, **Module Inner Spacing**, **Max Module Inner Width**, **Module Height** groups. **CLS tip (Sheet / CSV):** If the list jumps when rows load, set **Module Height → Minimum Height** after measuring a published instance. ### Module Background Settings Standard **Module Outer / Module Inner** pattern (same family as SW Careers Basic). Inherited Outer Animated chrome is present; this product is **not** an Animated module. ### Event cards (Style 1) Always-open cards. Image · title · datetime · location · teaser · RSVP on the right. Event Card Settings: Background (None/Color, default white), Override Event Card Border (default on, 1px solid `#e5e5e5`, radius 8), Event Card Spacing (padding 25; margin top 15 / bottom 0). Accordion Mode / Accordion Events leftovers stay parked (Accordion Events is always off). Form Content Style and Form Text/Link colors are parked. ### Form Box (RSVP popup) - Color **white**, Max Form Width **Large**, Form Alignment **Center**. - Padding **32**. Extra HubSpot `.hsfc-Step_Content` padding inside the form box is zeroed so Form Box padding is the only inset. - **Form Box Pattern** (dots / grid / lines / custom SVG): Color Mode, Size Mode, Scale, Blend, Rim/Face. Custom SVG from Form Box Pattern Custom SVG. CSS targets `#events-form-{{ name }}` so the pattern survives hoist to `document.body` (z-index **100000**). --- ## 4. Google Sheet and CSV Starter Sheet: https://docs.google.com/spreadsheets/d/1r1l-EIvEBwoti4_BJh-YCC7PUKK71CS3Kx5S4SGFGkc/edit?usp=sharing Sample CSV: https://smithworks.marketing/hubfs/module-documentation/sw-events-basic-sample.csv Keep these headers (order as in the sample): `title,event_date,datetime,location,image,teaser,rsvp_url,rsvp_label` 1. Copy the starter Sheet or import the sample CSV. 2. Sheet: Anyone with the link → Viewer; paste the Share URL into **Google Sheet link**. 3. CSV: upload to File Manager and pick it in **CSV File**. 4. Blank `rsvp_url` opens the RSVP popup; a URL uses a custom leave-page link. 5. `event_date` is ISO (`YYYY-MM-DD`) for hide-past and sort (America/Denver). The event **still shows on the day**. `datetime` is display-only (do not use it to hide). 6. Sheet/CSV rows are downloaded in the browser; filtering is not access control. Delete instructional sample rows before go-live. --- ## 5. Common Tasks - **Add events in HubSpot:** Event Source = Inline Repeater; edit Event Items. - **Use a spreadsheet:** Event Source = Google Sheet; paste Share link; keep headers. - **Use a CSV:** Event Source = CSV File; pick the file. - **RSVP in the popup:** Leave `rsvp_url` empty. The form field internal name **`event_name`** receives the event title. The modal stays open after the inline thank-you; close with **X** or **Escape**. - **RSVP off-site:** Put a URL in `rsvp_url` (Partner Office Hours sample uses a custom link). - **Hide the form:** Show Form off (popup RSVP will have nothing to show). - **Hide past events:** Set `event_date` on each row. Events before today (America/Denver) are hidden; today still shows. - **Resubmit cooldown:** Pick a HubSpot form, then enable Resubmit cooldown (off by default). - **Form Box Pattern:** Style → Form Box → Pattern. Survives the RSVP modal hoist. --- ## 6. Sample view / defaults - Style 1 always-open cards. - Sample events include a workshop, breakfast, and Partner Office Hours (custom RSVP link). - CTA / link default href: `https://smithworks.marketing/sw-module-documentation`. - Form picker empty still renders HubSpot’s default form. - **No Event JSON-LD.** --- ## 7. Related / parked - **SW Events Advanced** — HubDB / listing+detail later (not shipped). Do not invent it on this module. - Do not roll **SW AI Documentation.html** or this `.txt` to client portals; they live on **smithworks-2025** only. --- ## 8. Document Version **Module:** SW Events Basic. **Master version number:** 2026.09.11.20.50. **Doc last updated:** 2026-09-11. First ship: always-open Style 1 event cards; Inline Repeater / Google Sheet / CSV (no HubDB); RSVP popup vs custom link with hidden `event_name`; hide-past via `event_date` (America/Denver, still shows on the day); Form Box Pattern hoist-safe; resubmit cooldown off by default; inherited outer only (not an Animated product).