Add Event to CV
Add an event or conference to your CV's relevant events list with intelligent data extraction and validation.
Usage
/add-event <event identifier>
Where <event identifier> can be:
- Event title (e.g., "AWS re:Invent 2024")
- URL to event page (Eventbrite, Meetup, Luma, conference websites, etc.)
- Path to screenshot containing event information
- Leave empty to enter manual mode with prompts
Behavior
When invoked, this skill will:
1. Extract Event Information
- If a URL is provided: Fetch and parse the page for title, location, and date
- If a screenshot is provided: Parse the image using vision capabilities to extract event details
- If a title is provided: Search the web for the event to get accurate location and date
- If empty: Prompt user for title, location, and date manually
2. Validate the Event
- Confirm the event exists and information is accurate
- Check for duplicates in the existing
relevantEvents array
- Alert if the event is already present
- Validate date and location formats
3. Format the Entry
Properly format the event entry following existing conventions:
Location format: "City, Country" or "Virtual"
- Examples: "San Francisco, USA", "Berlin, Germany", "Virtual"
- Standardize country names (USA not US, etc.)
Date format:
- Single day: "DD MMM YYYY" (e.g., "21 Oct 2015")
- Multi-day same month: "DD-DD MMM YYYY" (e.g., "27-28 Aug 2024")
- Multi-day cross-month: "DD MMM - DD MMM YYYY" (e.g., "30 Jan - 2 Feb 2024")
Title: Use official event name, preserve capitalization and special characters
Example formats:
{
title: 'Engineering Leadership Community Annual 2024',
location: 'San Francisco, USA',
date: '27-28 Aug 2024',
}
{
title: 'TEDx Goiânia',
location: 'Goiânia, Brazil',
date: '21 Oct 2015',
}
{
title: 'ELC Match & Learn: increasing velocity without losing quality',
location: 'Virtual',
date: '25 Apr 2024',
}
4. Determine Insertion Position
- Parse existing event dates to determine chronological position
- Events are sorted newest first (reverse chronological order)
- Insert in the correct position to maintain order
- Show where in the list it will be inserted
5. Show Proposed Changes
- Display the complete diff showing:
- The formatted event entry
- Its position in the list (with before/after context)
- Line numbers for reference
- Highlight that events are in reverse chronological order
6. Request User Approval
- Present the changes and ask for explicit confirmation
- Options: "approve", "edit", "cancel"
- If "edit" is selected, allow user to modify title, location, or date
7. Commit Changes
If approved, use the Edit tool to add the event to src/components/cv/cvData.ts
Create a descriptive commit message:
Add event to CV: [Event Title]
Location: [Location]
Date: [Date]
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Run npm run lint to ensure code formatting is correct
8. Offer to Push
- After successful commit, ask if the user wants to push to the remote branch
- If yes, execute:
git push -u origin <branch-name>
Important Notes
- File Location: Events are stored in
src/components/cv/cvData.ts
- Structure: Single array at
cvData.relevantEvents[] (around lines 797-850)
- Ordering: Events MUST be in reverse chronological order (newest first)
- Date Parsing:
- Accept various input formats (MM/DD/YYYY, DD-MM-YYYY, "Month DD, YYYY", etc.)
- Always convert to CV format: "DD MMM YYYY" or "DD-DD MMM YYYY"
- Use 3-letter month abbreviations (Jan, Feb, Mar, etc.)
- Location Standardization:
- Always use full country names: "USA" not "US"
- Format: "City, Country" - capitalize appropriately
- Use "Virtual" for online-only events (not "Online", "Remote", etc.)
- Linting: Always run
npm run lint before committing to maintain code quality
- PDF Generation: Remind user they may want to rebuild the CV PDF with
npm run build
Supported Event Platforms
The skill can parse event information from:
- Eventbrite (eventbrite.com)
- Meetup (meetup.com)
- Luma (lu.ma)
- LinkedIn Events
- Conference websites (via HTML/JSON-LD parsing)
- Generic event pages with structured data
Error Handling
- If event information cannot be found or validated, ask user to provide details manually
- If duplicate is detected, inform user and ask if they want to continue anyway
- If date format is ambiguous, ask user to clarify
- If location format is unclear, suggest standard format and confirm
- If web search/URL fetch fails, fall back to manual entry mode
Examples
# Add by title (will search for event details)
/add-event AWS re:Invent 2024
# Add by URL
/add-event https://www.eventbrite.com/e/example-event-tickets-123456
# Add by Luma URL
/add-event https://lu.ma/example-event
# Add by screenshot
/add-event /path/to/event-screenshot.png
# Manual mode (prompts for all details)
/add-event
Date Format Examples
Input formats accepted:
- "August 27-28, 2024"
- "27-28 Aug 2024"
- "2024-08-27 to 2024-08-28"
- "27/08/2024 - 28/08/2024"
- "Aug 27, 2024"
Output formats (standardized):
- Single day: "21 Oct 2015"
- Multi-day (same month): "27-28 Aug 2024"
- Multi-day (cross month): "30 Jan - 2 Feb 2024"
Configuration
Default behavior can be customized:
- auto-push: Set to
true to automatically push after commit (default: false)
- auto-approve: Set to
true to skip approval step (default: false, not recommended)
- date-format-preference: Preferred input date format for ambiguous dates (default:
auto-detect)
- sort-order: Maintain chronological order (default:
newest-first, do not change)
Workflow Tips
- Batch Adding: If adding multiple events, you can invoke the skill multiple times in succession
- Recent Events: When adding recent events, dates are usually easier to find and validate
- Historical Events: For older events, you may need to rely on manual entry if details are not online
- Virtual Events: Always use "Virtual" as the location for online-only events
- Event Series: For recurring events (e.g., "Annual Conference 2024"), include the year in the title
Related Commands
npm run dev - Preview changes locally
npm run build - Build production site and generate updated PDF
npm run lint - Format code (automatically run by skill)
git log - View commit history
Troubleshooting
Problem: Date format not recognized
- Solution: Provide date in "DD MMM YYYY" format directly or let the skill prompt for clarification
Problem: Event marked as duplicate but seems different
- Solution: Check if the event title is slightly different (e.g., year included or not)
Problem: Location format incorrect
- Solution: Use "City, Country" format exactly, or "Virtual" for online events
Problem: Commit fails
- Solution: Check that you're on a clean branch and have no uncommitted changes
Testing Checklist
Before considering the skill complete, verify:
1---2name: add-event3description: Add an event/conference to your CV's relevant events list with intelligent data extraction, validation, and automatic commit generation4---56# Add Event to CV78Add an event or conference to your CV's relevant events list with intelligent data extraction and validation.910## Usage1112```13/add-event <event identifier>14```1516Where `<event identifier>` can be:1718- Event title (e.g., "AWS re:Invent 2024")19- URL to event page (Eventbrite, Meetup, Luma, conference websites, etc.)20- Path to screenshot containing event information21- Leave empty to enter manual mode with prompts2223## Behavior2425When invoked, this skill will:2627### 1. **Extract Event Information**2829 - If a URL is provided: Fetch and parse the page for title, location, and date30 - If a screenshot is provided: Parse the image using vision capabilities to extract event details31 - If a title is provided: Search the web for the event to get accurate location and date32 - If empty: Prompt user for title, location, and date manually3334### 2. **Validate the Event**3536 - Confirm the event exists and information is accurate37 - Check for duplicates in the existing `relevantEvents` array38 - Alert if the event is already present39 - Validate date and location formats4041### 3. **Format the Entry**4243 Properly format the event entry following existing conventions:4445 - **Location format**: "City, Country" or "Virtual"46 - Examples: "San Francisco, USA", "Berlin, Germany", "Virtual"47 - Standardize country names (USA not US, etc.)48 49 - **Date format**:50 - Single day: "DD MMM YYYY" (e.g., "21 Oct 2015")51 - Multi-day same month: "DD-DD MMM YYYY" (e.g., "27-28 Aug 2024")52 - Multi-day cross-month: "DD MMM - DD MMM YYYY" (e.g., "30 Jan - 2 Feb 2024")53 54 - **Title**: Use official event name, preserve capitalization and special characters5556 Example formats:5758 ```typescript59 {60 title: 'Engineering Leadership Community Annual 2024',61 location: 'San Francisco, USA',62 date: '27-28 Aug 2024',63 }6465 {66 title: 'TEDx Goiânia',67 location: 'Goiânia, Brazil',68 date: '21 Oct 2015',69 }7071 {72 title: 'ELC Match & Learn: increasing velocity without losing quality',73 location: 'Virtual',74 date: '25 Apr 2024',75 }76 ```7778### 4. **Determine Insertion Position**7980 - Parse existing event dates to determine chronological position81 - Events are sorted newest first (reverse chronological order)82 - Insert in the correct position to maintain order83 - Show where in the list it will be inserted8485### 5. **Show Proposed Changes**8687 - Display the complete diff showing:88 - The formatted event entry89 - Its position in the list (with before/after context)90 - Line numbers for reference91 - Highlight that events are in reverse chronological order9293### 6. **Request User Approval**9495 - Present the changes and ask for explicit confirmation96 - Options: "approve", "edit", "cancel"97 - If "edit" is selected, allow user to modify title, location, or date9899### 7. **Commit Changes**100101 - If approved, use the Edit tool to add the event to `src/components/cv/cvData.ts`102 - Create a descriptive commit message:103104 ```105 Add event to CV: [Event Title]106107 Location: [Location]108 Date: [Date]109110 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>111 ```112113 - Run `npm run lint` to ensure code formatting is correct114115### 8. **Offer to Push**116 - After successful commit, ask if the user wants to push to the remote branch117 - If yes, execute: `git push -u origin <branch-name>`118119## Important Notes120121- **File Location**: Events are stored in `src/components/cv/cvData.ts`122- **Structure**: Single array at `cvData.relevantEvents[]` (around lines 797-850)123- **Ordering**: Events MUST be in reverse chronological order (newest first)124- **Date Parsing**:125 - Accept various input formats (MM/DD/YYYY, DD-MM-YYYY, "Month DD, YYYY", etc.)126 - Always convert to CV format: "DD MMM YYYY" or "DD-DD MMM YYYY"127 - Use 3-letter month abbreviations (Jan, Feb, Mar, etc.)128- **Location Standardization**:129 - Always use full country names: "USA" not "US"130 - Format: "City, Country" - capitalize appropriately131 - Use "Virtual" for online-only events (not "Online", "Remote", etc.)132- **Linting**: Always run `npm run lint` before committing to maintain code quality133- **PDF Generation**: Remind user they may want to rebuild the CV PDF with `npm run build`134135## Supported Event Platforms136137The skill can parse event information from:138139- Eventbrite (eventbrite.com)140- Meetup (meetup.com)141- Luma (lu.ma)142- LinkedIn Events143- Conference websites (via HTML/JSON-LD parsing)144- Generic event pages with structured data145146## Error Handling147148- If event information cannot be found or validated, ask user to provide details manually149- If duplicate is detected, inform user and ask if they want to continue anyway150- If date format is ambiguous, ask user to clarify151- If location format is unclear, suggest standard format and confirm152- If web search/URL fetch fails, fall back to manual entry mode153154## Examples155156```bash157# Add by title (will search for event details)158/add-event AWS re:Invent 2024159160# Add by URL161/add-event https://www.eventbrite.com/e/example-event-tickets-123456162163# Add by Luma URL164/add-event https://lu.ma/example-event165166# Add by screenshot167/add-event /path/to/event-screenshot.png168169# Manual mode (prompts for all details)170/add-event171```172173## Date Format Examples174175Input formats accepted:176- "August 27-28, 2024"177- "27-28 Aug 2024"178- "2024-08-27 to 2024-08-28"179- "27/08/2024 - 28/08/2024"180- "Aug 27, 2024"181182Output formats (standardized):183- Single day: "21 Oct 2015"184- Multi-day (same month): "27-28 Aug 2024"185- Multi-day (cross month): "30 Jan - 2 Feb 2024"186187## Configuration188189Default behavior can be customized:190191- **auto-push**: Set to `true` to automatically push after commit (default: `false`)192- **auto-approve**: Set to `true` to skip approval step (default: `false`, not recommended)193- **date-format-preference**: Preferred input date format for ambiguous dates (default: `auto-detect`)194- **sort-order**: Maintain chronological order (default: `newest-first`, do not change)195196## Workflow Tips1971981. **Batch Adding**: If adding multiple events, you can invoke the skill multiple times in succession1992. **Recent Events**: When adding recent events, dates are usually easier to find and validate2003. **Historical Events**: For older events, you may need to rely on manual entry if details are not online2014. **Virtual Events**: Always use "Virtual" as the location for online-only events2025. **Event Series**: For recurring events (e.g., "Annual Conference 2024"), include the year in the title203204## Related Commands205206- `npm run dev` - Preview changes locally207- `npm run build` - Build production site and generate updated PDF208- `npm run lint` - Format code (automatically run by skill)209- `git log` - View commit history210211## Troubleshooting212213**Problem**: Date format not recognized214- **Solution**: Provide date in "DD MMM YYYY" format directly or let the skill prompt for clarification215216**Problem**: Event marked as duplicate but seems different217- **Solution**: Check if the event title is slightly different (e.g., year included or not)218219**Problem**: Location format incorrect220- **Solution**: Use "City, Country" format exactly, or "Virtual" for online events221222**Problem**: Commit fails223- **Solution**: Check that you're on a clean branch and have no uncommitted changes224225## Testing Checklist226227Before considering the skill complete, verify:228229- [ ] Can add event by title (web search)230- [ ] Can add event by URL (multiple platforms)231- [ ] Can add multi-day event with correct date format232- [ ] Can add single-day event233- [ ] Can add virtual event234- [ ] Duplicate detection works235- [ ] Events inserted in correct chronological position (newest first)236- [ ] Date format conversion works for various inputs237- [ ] Location standardization works238- [ ] Commit message generated correctly239- [ ] Linting runs successfully240- [ ] Changes show correct diff with context