CMEN

Operator Guide

Everything you need to set up the CMEN schedule on phones, venue TVs, and piSignage kiosks. Bookmark this page.

How it all works (the 30-second version)

  • One Google Sheet per organization is the source of truth. Editing the Sheet updates every screen automatically — no need to touch this website or redeploy anything.
  • Screens refresh themselves about every 10 seconds. An edit in the Sheet shows up on the displays within roughly 10–20 seconds.
  • A screen never goes blank. If the Wi-Fi drops, each display keeps showing the last schedule it had and quietly notes when that was — so nothing disappears mid-event.
  • Every link below is a page you just open in a browser. Add it after your site address — for example …/tv/today.

Links for attendees (phones)

Share these with people at the gathering. Times always show in the venue’s local time, no matter where someone’s phone is set.

/Today's schedule — the main link to share with attendees.
/todaySame as above (today), if you prefer a named link.
/two-dayToday and tomorrow together.
/allThe whole gathering — every day, top to bottom.
/day/2026-07-21One specific day.
/two-day/2026-07-21A specific day plus the day after it.
/from/2026-07-21From a date through the end of the gathering.
/from/2026-07-21/to/2026-07-23A custom range of days.
/requestPropose a schedule addition, change, or removal.
/updatesAlias that redirects to the schedule-change request form.

Tip: dates can be written loosely, like 7-21-26 — the site tidies them to 2026-07-21. A misspelled date just shows a “not found” page rather than breaking anything.

Links for venue displays (landscape TVs)

These are the big-screen versions. Point a TV or kiosk browser at one of them.

/tv/todayToday's schedule, sized big for a TV.
/tv/gridThe full-day place grid: every place in columns and the whole day at once.
/tv/two-dayToday and tomorrow, side by side.
/tv/noticeToday plus the promo panel (the “ad” image or message set in the Sheet).
/tv/adsA full-screen slideshow of today's promo images (from the Drive folder).
/tv/nowThe rolling “happening now / up next” board — advances itself as items finish.
/tv/now/noticeThe now board with the promo panel pinned along the bottom.
/tv/day/2026-07-21A specific day on a TV.
/tv/grid/2026-07-21A specific day's full-day place grid.
/tv/two-day/2026-07-21A specific day plus the next day, side by side.
/tv/notice/2026-07-21A specific day with the promo panel.
/tv/ads/2026-07-21A specific day's promo slideshow.

Every TV page except the full-screen ad slideshow shows a bottom band with a scrolling message and a live clock (set the message with the ticker value in the Sheet).

Sideways (portrait) screens

For screens rotated to be tall instead of wide, use the portrait versions — the layout stacks into one column and the text grows to fill the height.

/tv/portrait/todayToday's schedule for a sideways (tall) screen.
/tv/portrait/gridThe full-day place grid as one time-ordered list for a tall screen.
/tv/portrait/two-dayToday and tomorrow, stacked for a tall screen.
/tv/portrait/noticeToday with the promo panel as a bottom band.
/tv/portrait/day/2026-07-21A specific day, stacked for a tall screen.
/tv/portrait/two-day/2026-07-21A specific day plus the next day, stacked for a tall screen.
/tv/portrait/notice/2026-07-21A specific day with the promo panel as a bottom band.

The now board (/tv/now) and the ad slideshow (/tv/ads) already work on both landscape and portrait screens, so they have no separate portrait link. The grid does have dedicated /tv/grid and /tv/portrait/grid links, listed above.

The promo image slideshow

/tv/ads shows a rotating, full-screen slideshow of promo images for the day. You control it entirely from Google Drive — no Sheet edit per day:

  1. In the Sheet’s config rows, set ad_folder once to a Google Drive folder (paste its share link). Share that folder as “anyone with the link can view.”
  2. Inside it, make one subfolder per day, named for the date — e.g. 2026-07-21 or JUNE_21_SUNDAY.
  3. Drop that day’s images into its subfolder. That’s it.

Optional Sheet settings: ad_seconds = how long each image holds (default 8), and ad_width = image size in pixels (use 1080 for a tall portrait panel). A day with no images shows a clean branded placeholder instead of going blank.

Starting a new gathering

Each organization uses one Google Sheet with one tab per gathering. When a new gathering is ready, add a fresh tab instead of creating a new Sheet:

  1. Fill the new tab completely: config rows at the top, then the schedule header and all schedule items.
  2. Keep the current tab untouched while the new one is being prepared. Once it is ready, move the new tab to the leftmost position (the first visible tab).
  3. The site switches to the new gathering automatically. There is no new Sheet, website setting, or redeploy needed.
  4. Leave previous tabs in place as an archive. They can be hidden later in Google Sheets, but do not delete the old tab until the new gathering has been checked.

The admin loading process prepares the new tab before moving it to the front, so attendees continue seeing the previous complete schedule until the switch.

Editing the schedule (the Sheet)

The top of the Sheet holds config rows (key, value pairs like the name, subtitle, timezone, footer, and promo settings). Below a blank row comes the schedule: one row per item.

  • Order comes from the position column, not the time text. To reorder items in the same time slot, change their position numbers — you never have to move rows around.
  • The category sets the color — meals show green, must-not-miss items show bright orange, everything else near-black.
  • Titles and details show exactly as typed. The site never rewrites or “cleans up” your wording.
  • Places are first-class labels. On the phone view, use ?place=PLACE to open today’s schedule filtered to that place. The filter is only applied when the place is valid for today; an unknown or stale place safely falls back to the full schedule.

Attendee schedule-change requests

The phone schedule includes a small request link below the footer. Attendees can propose an add, change, or remove request without editing the Sheet themselves.

  • The form loads the current schedule so people can choose a day and existing event, then submit the requested time, place, category, details, and contact information.
  • If requests are not configured, the form explains that it is not open; no data is written.
  • A moderator reviews requests at /moderate?key=… and can edit, approve, or decline them. The key is secret and the page is intentionally not discoverable.

/updates is an alias for /request. Approval changes the live schedule directly; normal attendee schedule pages never expose the moderator tools.

Setting up a kiosk / piSignage

  • Point the screen’s browser at the TV link you want (for example /tv/today or /tv/ads).
  • In piSignage, turn on the setting that reloads the URL each time it’s shown. This keeps the display fresh and clears the occasional “are you human?” checkpoint on its own.
  • Turn off piSignage’s own scrolling ticker — the schedule pages already have a built-in ticker and clock along the bottom, so you don’t want two.
  • Load each device once on good Wi-Fi. The screens store the schedule and the promo images locally, so they keep working through weak Wi-Fi, reboots, and midnight. Let a new device sit on the page for a minute on solid Wi-Fi before the event so it can cache everything.

Good to know

  • “Today” and “now” follow the venue’s time zone, set once in the Sheet — not the device’s clock. A screen in another region still shows the right day and highlights.
  • The now board self-advances: finished items drop off the top a few minutes after they end, so the screen always leads with what’s coming up.
  • When a screen can’t reach the internet, it shows a small “as of [time]” note so you can tell at a glance whether what’s on screen is current.
  • Phone tabs save battery while hidden. A backgrounded phone page pauses its schedule polling and refreshes immediately when it becomes visible again. Always-on TV pages continue polling while hidden.
  • The day strip is the phone navigation. Swipe across the day chips at the top to move between days or choose All; it keeps working through the offline shell after the device has first loaded the schedule.

CMEN Schedule — this guide reflects the site as currently built.