Skip to content

Schedule ​

Build a multi-day event agenda with times, locations, maps, access controls, and rich content.

Quick outcome ​

The schedule system organizes your event into days and items. Attendees browse the agenda on the public site. Organizers manage everything from the admin dashboard, including per-item access controls and location details.

Setup ​

Create days ​

Navigate to /admin/schedule and click to add a new day:

FieldDescription
DateCalendar date for the day
LabelDisplay name (e.g., "Day 1 — Arrival", "Saturday")

Days are displayed in sort order on the public schedule page.

Add schedule items ​

For each day, add items at /admin/schedule/[dayId]/new-item:

FieldDescription
TimeStart time (e.g., "9:00 AM")
End timeOptional end time (e.g., "11:00 AM")
TitleItem name (e.g., "Breakfast at the Lodge")
DescriptionShort summary
Categorymeal, activity, travel, ceremony, free-time, other

Location details ​

Each item can include location information:

FieldDescription
Location nameVenue name (e.g., "Lakehouse Deck")
Location addressFull address for map links
CoordinatesLatitude/longitude for embedded maps
Directions noteSpecial instructions (e.g., "Park in the back lot")

Rich content ​

Items support additional content:

FieldDescription
NotesMarkdown-formatted additional details
Hero imageFeatured image for the item detail page
Gallery imagesMultiple images displayed in a gallery
External URLLink to venue website, reservation, etc.
IconCategory icon for visual identification

Access controls ​

Items can be restricted to specific people:

FieldDescription
Requires authItem only visible to signed-in users
Required add-onOnly visible to attendees who purchased a specific add-on
PermissionsEmail or group-based access (via schedule item permissions)

This is useful for optional activities that only certain groups should see.

Day-to-day management ​

Reordering ​

From /admin/schedule, drag to reorder days and items within days. Sort order changes are saved automatically.

Editing items ​

Click any item to open /admin/schedule/[id] for full editing. All fields can be updated at any time.

Deleting items ​

Remove items or entire days from the schedule. Deleting a day cascades to all its items.

Attendee experience ​

Schedule page ​

Attendees visit /schedule to see the full agenda organized by day:

  • Each day shows its label and date
  • Items display time, title, description, and category icon
  • Location details show venue name and a map link (if coordinates provided)
  • Items with access restrictions only appear for authorized users

Item detail pages ​

Clicking an item opens /schedule/[id] with:

  • Full description and notes (rendered from Markdown)
  • Hero image and gallery
  • Location with map embed (if coordinates set)
  • External links
  • Directions notes

Access-controlled items ​

Items restricted by group or email permissions:

  • Show normally for authorized users
  • Are hidden from unauthorized users
  • Items requiring a purchased add-on are visible but may show a "requires purchase" indicator

Troubleshooting ​

SymptomFix
Item missing from scheduleCheck requiresAuth, permissions, and add-on requirements
Wrong time displayEdit the item and verify the time format
Broken location linkVerify the address or coordinates are correct
Reorder not savedConfirm the drag action completed (check for errors)
Detail page not foundVerify the item ID and route parameter
Item on wrong dayCheck the day assignment in the item editor

Next steps ​

Released under the MIT License.