Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cesium/calendarium
📆 Calendar with special events, due dates and week schedule
https://github.com/cesium/calendarium
hacktoberfest nextjs react
Last synced: 16 days ago
JSON representation
📆 Calendar with special events, due dates and week schedule
- Host: GitHub
- URL: https://github.com/cesium/calendarium
- Owner: cesium
- Created: 2021-12-09T15:25:26.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-12-15T01:45:02.000Z (21 days ago)
- Last Synced: 2024-12-15T02:27:57.326Z (21 days ago)
- Topics: hacktoberfest, nextjs, react
- Language: TypeScript
- Homepage: https://calendario.cesium.di.uminho.pt/
- Size: 5.43 MB
- Stars: 13
- Watchers: 4
- Forks: 2
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[netlify-status]: https://app.netlify.com/sites/cesium-calendarium/deploys
> 📅 Calendar with special events, due dates and week schedule
Exams, projects, events and schedules. Your hub to everything LEI, MEI or even MIEI!
Anything out of place? Give us your feedback using the [Suggestions Form](https://forms.gle/C2uxuUKqoeqMWfcZ6)!
You can also fix it yourself following our [Helping Guide](HELPING_GUIDE.md) ;)
## 🤝 Contributing
When contributing to this repository, please first discuss the change you wish to make via discussions, issue, email, or any other method with the owners of this repository before making a change.
Please note we have a [Code of Conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
We have a [Contributing Guide](CONTRIBUTING.md) to help you getting started.
## 📑 Features
> Here's a quick view of the features you can expect
### Multiple calendar views
- Day
- Week
- Month### Event & Schedule filtering
See only the activities that matter to you
### Clear Choices
New schedule? New subject? Clear all your choices with one click and start again
### Share
Share your schedule or events with another device or with your friends
### Export
Export your calendar or schedule to your favorite calendar app
### Notifications
Get updated on the latest changes to the platform and know when new information is added
### Color Themes
Customize your calendar view with a choice of themes or create your own!
### Appearance
Choose between beautiful dark and light modes!
## 🔌 Calendar Export API
> Understand how our Export API works, and what you can do with it
### API Endpoints
There are two endpoints you can work with: `/api/export/events` and `/api/export/schedule`.
**1. `/events`**
This endpoint is responsible for generating a .ics (iCal) file containing events from the "Events" page. It should receive a list of subjects in their short form, similarly to how subjects are displayed in the filters of Calendarium, joined by `&`.
Check out this example, where we ask the API to generate a file containing the events from the 2nd year / 2nd semester subjects of LEI:
```
https://calendario.cesium.di.uminho.pt/api/export/events?BD&IO&MNOnL&POO&RC&SO
```> **Note**
> Only the events relevant to the current academic year will be exported. A request with wrongly formatted parameters or subjects that don't exist, will be answered with a "400 Invalid Request" error message.**2. `/schedule`**
This endpoint is responsible for generating a .ics (iCal) file containing shifts from the "Schedule" page, which will have a weekly recurrence rule. It should receive a list of subject-shift pairs, joined by `&`. Similarly to what happens in `/events`, the subject should be represented in its short form. As for the shift, it should be in accordance with the shifts displayed in the filters of Calendarium.
Check out this example, where we ask the API to generate a file containing a possible schedule for the 3rd year / 1st semester of LEI:
```
https://calendario.cesium.di.uminho.pt/api/export/schedule?CP=T1&CP=TP1&CC=T1&CC=PL1&DSS=T1&DSS=PL1&IA=T1&IA=PL1&LI4=T1&LI4=OT1&SD=T1&SD=PL1
```> **Note**
> A request with wrongly formatted parameters, or subjects and shifts that don't exist, will be answered with a "400 Invalid Request" error message.### Setting a Time Period for Shifts
Additionally, it's possible to set an interval in `/schedule` for when a schedule should start and end. This means that you can set a start date and an end date which will delimit when the shifts from your schedule will start and stop showing up on your calendar. For this, you can simply use the parameters `start` and `end`. By default, your schedule will show up on your calendar from the current week onwards, repeating forever.
Check out this example, where we set the above schedule to start on 11/09/2023 and end on 08/08/2024:
```
https://calendario.cesium.di.uminho.pt/api/export/schedule?CP=T1&CP=TP1&CC=T1&CC=PL1&DSS=T1&DSS=PL1&IA=T1&IA=PL1&LI4=T1&LI4=OT1&SD=T1&SD=PL1&start=2023-09-11&end=2024-08-08
```_Note that you can define **just the start, just the end, both or neither**. The parameter you omit will assume the default behaviour._