This is a web-based calendar application built with FastHTML, providing an interactive and customizable event viewing experience.
It is primarily intended to be deployed directly from a Github repository, allowing event submission via PR.
A live version can be viewed at https://tech-for-good.events/
- Interactive calendar view with month navigation
- Agenda view for upcoming events
- Location-based event filtering
- RSS feed for event subscriptions
- Customizable title and about section
- Social media links integration
- Static logo display
- Markdown support for event descriptions and about section
- Python 3.11+
- uv
-
Clone the repository:
git clone https://github.com/your-username/awesome-calendar.git cd awesome-calendar
-
Create and activate a virtual environment:
uv venv --python 3.11
-
Install the required packages:
uv sync
-
Create a
custom_settings.yaml
file in the project root with the following structure:title: My Awesome Calendar about_content: | # About This is my awesome calendar application. ## Features - Easy to use - Customizable - Markdown support website_url: https://example.com github_url: https://github.com/your-username/awesome-calendar default_locations: - Online - London social_links: - name: RSS url: /rss icon: rss-simple - name: Discord url: https://discord.gg/your-server icon: discord-logo
-
Create an
events.yaml
file in the project root to populate your calendar with events:- id: 1 title: Team Meeting date: 2024-09-15 description: | # Weekly Team Sync-up ## Agenda - Project updates - Upcoming deadlines - Q&A session Join us at [Google Meet](https://meet.google.com/abc-defg-hij) url: https://meet.google.com/abc-defg-hij location: Online - id: 2 title: Project Deadline date: 2024-09-30 description: | **Final submission for Q3 project** Make sure to: - Complete all deliverables - Review documentation - Prepare presentation slides url: "" location: London
-
Add your logo image file (e.g.,
logo.png
) to thestatic
folder in the project root.
-
Run the application:
python main.py
-
Open a web browser and navigate to
http://localhost:5001
(or the port specified in your configuration). -
Use the calendar view to browse events, switch to the agenda view, or filter events by location.
-
Click on events to view details. Event descriptions support Markdown formatting.
-
Use the social media buttons in the footer to access linked platforms or subscribe to the RSS feed.
- Modify the
custom_settings.yaml
file to change the application title, about content, website URL, GitHub URL, default locations, and social media links. - Edit the
events.yaml
file to add, remove, or modify events. Event descriptions support Markdown formatting. - Replace the
logo.png
file in thestatic
folder to change the application logo.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.