A comprehensive calendar management system designed for Masterschool students, integrating multiple calendar sources into a unified platform with WhatsApp notifications.
-
Multi-Source Calendar Integration
- Google Calendar sync
- Calendly integration
- Masterschool Calendar sync
- Local calendar management
-
WhatsApp Integration
- Event notifications
- Command-line interface via WhatsApp
- Interactive event management
-
Email Verification
- Secure user verification process
- HTML email templates
- Verification link support
- Clone the repository:
git clone https://github.com/webboy/better-calendar.git
cd better-calendar- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables in
.env:
# Twilio Configuration
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_PHONE_NUMBER=your_number
# Email Configuration
SMTP_EMAIL=your_email
SMTP_PASSWORD=your_password
# Calendar APIs
GOOGLE_CREDENTIALS_PATH=path/to/credentials.json
MS_CALENDAR_TOKEN=your_token
CALENDLY_API_KEY=your_key
# Application
BASE_URL=http://your-domain.com- Import events from Google Calendar:
python cli/import_google_calendar.py- Import events from Calendly:
python cli/import_calendly.py- Import Masterschool events:
python cli/import_masterschool.py- Seed sample events:
python cli/event_seeder.py!help- Show available commands!register <email>- Start registration process!validate <email> <code>- Complete registration!events- List upcoming events!events today- Show today's events!events tomorrow- Show tomorrow's events!events this-week- Show this week's events!events next-week- Show next week's events!reminder <5, 10, 15>- Set event reminder on 5 ,10, or 15 minutes
better-calendar/
├── app/
│ ├── models/
│ │ └── event.py
│ └── services/
│ ├── calendly_service.py
│ ├── email_service.py
│ ├── event_service.py
│ ├── google_calendar_service.py
│ └── twilio_service.py
├── cli/
│ ├── download_masterschool_calendar.py
│ ├── import_calendly.py
│ ├── import_google_calendar.py
│ └── event_seeder.py
├── storage/
│ └── events.json
└── app.py
- Start the Flask server:
python app.py- Test the webhook:
curl -X POST http://localhost:5000/webhook -d "Body=!help"- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.