Add Event Skill
This skill guides you through the process of adding an AppEvent to the OlyBars database.
When to use this skill
- •When the user explicitly asks to "add an event", "schedule a show", or "put something on the calendar".
- •When operating in the context of the "Schmidt" dashboard or Venue Owner workflows.
Prerequisite Information
Before creating an event, you MUST gather the following information from the user (simulate the "Schmidt" conversational flow):
- •Venue Identity: Which venue is this for? (Implicit if in a specific venue context, otherwise ask).
- •Constraint: Must match a valid
venueIdinvenues_master.json.
- •Constraint: Must match a valid
- •Event Title: What is the name of the event?
- •Event Type: What kind of event is it?
- •Allowed Values:
karaoke,trivia,live_music,bingo,openmic,other.
- •Allowed Values:
- •Date: When is it happening? (YYYY-MM-DD format).
- •Time: What time does it start? (HH:MM 24-hour format).
- •Description: Brief details about the event. (Optional, can be polished by Artie later).
Execution Procedure
1. Conversation Logic (The "Schmidt" Flow)
1. Conversation Logic (The "Schmidt" Flow)
Trigger: User selects "Add Event" chip or types "Add event". Schmidt Response: "How would you like to provide the details?" - Option A: "Paste the details or a link." - Option B: "Upload a flyer/schedule." (Requires UI Support). - Option C: "Interactive Interview."
Path A: The Direct Paste (Quick)
- •User Input: User provides text (e.g., "Karaoke Night, Friday at 8pm").
- •Processing: Agent drafts event from text.
- •Commit: User confirms.
Path B: Upload Mode (Planned)
Note: The Chat UI does not currently support file uploads. This path is pending UI updates.
Path C: The Interview Mode (Interactive)
- •Schmidt Prompt: "I'll ask you a few questions to build the listing. First, what is the Event Title?"
- •User Input: "Trivia Night"
- •Schmidt Prompt: "Got it. What date and time does Trivia Night start?"
- •User Input: "Next Tuesday at 7pm"
- •Schmidt Prompt: "And finally, which category fits best? (Trivia, Karaoke, Live Music, Other)"
- •User Input: "Trivia"
- •Confirmation: Schmidt displays the "Pending Action" card.
- •Commit: User clicks "Confirm & Save".
2. Technical Implementation (Agent Directives)
- •Hook:
useArtieOps.ts- •State:
event_input - •Action:
SUBMIT_EVENT_TEXT - •Draft Skill:
add_calendar_event
- •State:
- •Service:
VenueOpsService.submitCalendarEvent->EventService.submitEvent. - •Validation: Ensure
title,date,timeare present before submission.
3. Developer Mode (Manual Injection)
If you are acting as the Developer Agent manually injecting data:
- •Script: Create a script in
server/src/scripts/add-event.ts. - •Inject: Run
npx tsx server/src/scripts/add-event.ts.
Best Practices
- •Validation: Ensure the
dateis not in the past. - •Conflict Check: Warn if there is already an event at that venue at the same time (if visible in context).
- •Tone: If simulating "Schmidt" or "Artie", keep the tone helpful and efficient.