{"id":19164206,"url":"https://github.com/andreasthinks/fastcalendar","last_synced_at":"2025-05-07T11:40:34.827Z","repository":{"id":260182802,"uuid":"860864097","full_name":"AndreasThinks/FastCalendar","owner":"AndreasThinks","description":"A collaborative web calendar built using FastHTML","archived":false,"fork":false,"pushed_at":"2024-11-04T15:17:06.000Z","size":389,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T22:01:20.819Z","etag":null,"topics":["calendar","fasthtml","python","webapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndreasThinks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-21T11:22:27.000Z","updated_at":"2024-12-12T20:46:13.000Z","dependencies_parsed_at":"2025-04-19T21:44:48.886Z","dependency_job_id":"f9197e24-085c-421a-8dd2-46bc661eeaae","html_url":"https://github.com/AndreasThinks/FastCalendar","commit_stats":null,"previous_names":["andreasthinks/fastcalendar"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasThinks%2FFastCalendar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasThinks%2FFastCalendar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasThinks%2FFastCalendar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasThinks%2FFastCalendar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreasThinks","download_url":"https://codeload.github.com/AndreasThinks/FastCalendar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252872967,"owners_count":21817697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","fasthtml","python","webapp"],"created_at":"2024-11-09T09:19:28.158Z","updated_at":"2025-05-07T11:40:34.810Z","avatar_url":"https://github.com/AndreasThinks.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastCalendar\n\nFastCalendar is a lightweight, customizable web-based calendar application built with FastHTML. It's designed to be easily deployed directly from a GitHub repository, allowing event submissions via Pull Requests. This makes it ideal for community-driven event calendars or personal event tracking.\n\nA live version can be viewed at https://tech-for-good.events/\n\n## Features\n\n- Interactive calendar view with month navigation\n- Agenda view for upcoming events\n- Location-based event filtering\n- RSS feed for event subscriptions\n- Customizable title and about section\n- Social media links integration\n- Static logo display\n- Markdown support for event descriptions and about section\n- Easy event submission via GitHub Pull Requests\n\n## Technology Stack\n\n- Python 3.11+\n- FastHTML\n- SQLite\n- YAML for configuration and event data\n\n## Prerequisites\n\n- Python 3.11+\n- uv\n\n## Installation\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/your-username/awesome-calendar.git\n   cd awesome-calendar\n   ```\n\n2. Create and activate a virtual environment:\n   ```\n   uv venv --python 3.11\n   ```\n\n3. Install the required packages:\n   ```\n   uv sync\n   ```\n\n4. Create a `custom_settings.yaml` file in the project root with the following structure:\n   ```yaml\n   title: My Awesome Calendar\n   about_content: |\n     # About\n\n     This is my awesome calendar application.\n\n     ## Features\n     - Easy to use\n     - Customizable\n     - Markdown support\n   website_url: https://example.com\n   github_url: https://github.com/your-username/awesome-calendar\n   default_locations:\n     - Online\n     - London\n   social_links:\n     - name: RSS\n       url: /rss\n       icon: rss-simple\n     - name: Discord\n       url: https://discord.gg/your-server\n       icon: discord-logo\n   ```\n\n5. Create an `events.yaml` file in the project root to populate your calendar with events:\n   ```yaml\n   - id: 1\n     title: Team Meeting\n     date: 2024-09-15\n     description: |\n       # Weekly Team Sync-up\n\n       ## Agenda\n       - Project updates\n       - Upcoming deadlines\n       - Q\u0026A session\n\n       Join us at [Google Meet](https://meet.google.com/abc-defg-hij)\n     url: https://meet.google.com/abc-defg-hij\n     location: Online\n\n   - id: 2\n     title: Project Deadline\n     date: 2024-09-30\n     description: |\n       **Final submission for Q3 project**\n\n       Make sure to:\n       - Complete all deliverables\n       - Review documentation\n       - Prepare presentation slides\n     url: \"\"\n     location: London\n   ```\n\n6. Add your logo image file (e.g., `logo.png`) to the `static` folder in the project root.\n\n## Usage\n\n1. Run the application:\n   ```\n   python main.py\n   ```\n\n2. Open a web browser and navigate to `http://localhost:5001` (or the port specified in your configuration).\n\n3. Use the calendar view to browse events, switch to the agenda view, or filter events by location.\n\n4. Click on events to view details. Event descriptions support Markdown formatting.\n\n5. Use the social media buttons in the footer to access linked platforms or subscribe to the RSS feed.\n\n## Customization\n\n- Modify the `custom_settings.yaml` file to change the application title, about content, website URL, GitHub URL, default locations, and social media links.\n- Edit the `events.yaml` file to add, remove, or modify events. Event descriptions support Markdown formatting.\n- Replace the `logo.png` file in the `static` folder to change the application logo.\n\n## Deployment\n\nFastCalendar is designed to be deployed directly from a GitHub repository. You can use services like Vercel, Netlify, or GitHub Pages for easy deployment. Specific deployment instructions will depend on your chosen platform.\n\n## Submitting Events\n\nTo submit a new event:\n\n1. Fork the repository\n2. Add your event to the `events.yaml` file\n3. Create a Pull Request with your changes\n\nThe repository maintainer will review and merge your PR, updating the calendar.\n\n## Updating the Application\n\nTo update the application or event data:\n\n1. Pull the latest changes from the main repository\n2. Update your `custom_settings.yaml` or `events.yaml` as needed\n3. Redeploy your application\n\n## Current Limitations\n\n- Location names: The current version of FastCalendar only supports single-word location names. Multi-word location names may not function correctly for filtering and display purposes. We're working on improving this in future updates.\n\n## Troubleshooting\n\nIf you encounter any issues:\n\n- Ensure all dependencies are correctly installed\n- Check that your `custom_settings.yaml` and `events.yaml` files are correctly formatted\n- Verify that your Python version is 3.11 or higher\n- Remember that location names should be single words\n\nFor more help, please open an issue on the GitHub repository.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasthinks%2Ffastcalendar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasthinks%2Ffastcalendar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasthinks%2Ffastcalendar/lists"}