A vibrant, modern event discovery app for finding the best weekend events in Calgary, Alberta. Built with Next.js 14+, TypeScript, and Tailwind CSS.
- Weekend-focused: Events filtered for Friday, Saturday, and Sunday
- Category filtering: Music, Sports, Arts, Family, Free, Comedy, Festival, Markets
- Smart filters: Free events, Kids welcome toggles
- Real-time countdown: See how much time until each event starts
- "Plan My Weekend": Save multiple events to a personal itinerary
- Trending section: See what's hot this week
- Add to Calendar: One-click Google Calendar integration
- Social sharing: Share events on Twitter, Facebook, or copy link
- Mobile-responsive: Works beautifully on all devices
- Local venues: Real Calgary venues with Google Maps links
- MTD timezone aware: Events displayed in Calgary's local time
- Newsletter signup: Get weekly event picks delivered to your inbox
Calgary is a vibrant city with a diverse event scene ranging from professional sports to intimate theater productions. Here's what makes YYC special:
| Venue | Type | Notable For |
|---|---|---|
| Scotiabank Saddledome | Sports/Concerts | Flames (NHL), Hitmen (WHL), major concerts |
| Jack Singer Concert Hall | Classical | Calgary Philharmonic Orchestra |
| Alberta Theatre Projects | Theater | Contemporary Canadian theater |
| Lunchbox Theatre | Theater | Intimate lunch-hour performances |
| Yuk Yuk's Calgary | Comedy | Stand-up comedy shows |
| Stampede Park | Festival | Calgary Stampede, year-round events |
| McMahon Stadium | Sports | Calgary Stampeders (CFL) |
| Calgary Farmers Market | Market | Local produce, artisan goods |
| Crossroads Market | Market | Vintage, art, international food |
| Commonwealth Bar & Stage | Music | Indie bands, nightlife |
| The Palace Theatre | Events | Special events, brunch |
| Simmons Building | Food/Market | East Village culinary destination |
- July: Calgary Stampede - "The Greatest Outdoor Show on Earth"
- August: Calgary Folk Music Festival
- September: Calgary International Film Festival
- October: YYC Pizza Week
- November: Calgary International Beerfest
- December: Zoolights at Calgary Zoo
- January: High Performance Rodeo (theater festival)
- February: YYC Hot Chocolate Fest
- March: Alberta Ballet season
- April: Calgary Comic & Entertainment Expo
- May: Servus Calgary Marathon
- June: Sled Island Music & Arts Festival
- ๐ Calgary Flames (NHL) - Scotiabank Saddledome
- ๐ Calgary Hitmen (WHL) - Scotiabank Saddledome
- ๐ Calgary Stampeders (CFL) - McMahon Stadium
- โฝ Calgary Foothills FC (USL2) - Foothills Field
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/mizoz/yyc-events-this-weekend.git
# Navigate to the project
cd yyc-events-this-weekend
# Install dependencies
npm install
# Run the development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start- Framework: Next.js 14+ (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4.0
- Icons: SVG (inline)
- State: React hooks with localStorage persistence
yyc-events-this-weekend/
โโโ src/
โ โโโ app/
โ โ โโโ layout.tsx # Root layout with metadata
โ โ โโโ page.tsx # Main page with all features
โ โ โโโ globals.css # Global styles
โ โโโ components/
โ โ โโโ Header.tsx # Navigation header
โ โ โโโ EventCard.tsx # Event display card
โ โ โโโ EventFilters.tsx # Filter controls
โ โ โโโ TrendingEvents.tsx # Trending carousel
โ โ โโโ WeekendPlanner.tsx # Saved events panel
โ โ โโโ Newsletter.tsx # Email signup form
โ โโโ data/
โ โ โโโ events.ts # Sample event data
โ โโโ lib/
โ โ โโโ utils.ts # Helper functions
โ โ โโโ hooks.ts # Custom React hooks
โ โโโ types/
โ โโโ event.ts # TypeScript types
โโโ public/
โ โโโ events/ # Event images (placeholder)
โโโ README.md
โโโ LICENSE
โโโ package.json
Edit src/data/events.ts to add or modify events. Each event has:
interface Event {
id: string;
title: string;
description: string;
venue: string;
venueAddress: string;
venueMapUrl: string;
date: string; // ISO format: YYYY-MM-DD
startTime: string; // HH:MM format
endTime: string;
category: EventCategory;
price: number; // 0 for free
priceRange: string; // Display text
imageUrl: string;
tags: string[];
isFree: boolean;
kidsWelcome: boolean;
trending: boolean;
ticketsUrl?: string;
}The app uses Tailwind CSS with a custom color palette:
- Primary: Indigo/Purple gradient
- Categories: Each has unique colors in
getCategoryColor() - Responsive breakpoints follow Tailwind defaults
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For questions or suggestions about Calgary events, feel free to open an issue!
Made with โค๏ธ in Calgary, Alberta | GitHub
