A web application that provides a simple interface for creating events in Luma while automatically checking for conflicts.
- Event Creation: Simple form interface to create new events
- Conflict Detection: Automatically checks for time/space conflicts
- Location Management: Predefined spaces to choose from
- Buffer Time: Includes buffer time between events (configurable)
GET /
- Serves the main application interfaceGET /locations
- Returns available spaces/roomsPOST /events/create
- Creates a new event with conflict checking
- User submits event details through the form
- Backend validates the request
- System checks for conflicts by:
- Fetching existing events for that day using Luma's
/calendar/list-events
endpoint - Comparing time slots including buffer time
- Checking space availability
- Fetching existing events for that day using Luma's
- If no conflicts, creates event using Luma's API
- Returns success/error response to user
Required environment variables:
LUMA_API_KEY=your_api_key_here # Your Luma Calendar API key
DEBUG_MODE=true # Optional: Run in debug mode with mock data
To run the application in debug mode without API keys:
-
Set environment variable:
DEBUG_MODE=true
-
Run the application:
python main.py
Debug mode features:
- Uses mock data instead of real API calls
- Includes sample events for testing
- Allows testing without API keys
- Shows debug status in health check endpoint
{
"name": "Team Meeting",
"start_time": "2024-03-20T14:00:00",
"end_time": "2024-03-20T15:00:00",
"location": "Conference Room A",
"description": "Weekly team sync"
}
Success:
{
"event_id": "evt_123abc",
"message": "Event created successfully"
}
Error (Conflict):
{
"detail": "Event conflicts with existing events"
}
- The Luma API endpoint
/calendar/list-events
only returns events managed by your Calendar, not events that are listed but not managed - All times are handled in ISO 8601 format
- Buffer time is currently fixed at 15 minutes (configurable in config.py)
- Add recurring event support
- Implement calendar view of existing events
- Add email notifications for conflicts
- Support for multiple calendars
- Custom buffer times per space
Users can create events directly from Slack using the /event
command:
/event "Team Meeting" 2024-03-20 14:00 15:00 "Conference Room A" "Weekly team sync"
Required environment variables:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your-signing-secret
/event "Event Name" YYYY-MM-DD HH:MM HH:MM "Location" "Description"
Success:
✅ Event created successfully!
Team Meeting
📅 March 20, 2024
🕒 14:00 - 15:00
📍 Conference Room A
Event ID: evt_123abc
Conflict:
⚠️ Cannot create event due to conflicts:
• Daily Standup (13:30 - 14:30)
• Team Lunch (14:00 - 15:00)
Error:
❌ Error: Invalid format. Please use: /event "Event Name" YYYY-MM-DD HH:MM HH:MM "Location" "Description"
See DEPLOY.md for detailed deployment instructions and configuration options.