{"id":17686263,"url":"https://github.com/tale/calboard","last_synced_at":"2025-03-30T20:45:37.268Z","repository":{"id":118168578,"uuid":"575602582","full_name":"tale/calboard","owner":"tale","description":"Blackboard Calendar Fixer","archived":false,"fork":false,"pushed_at":"2023-08-31T16:52:22.000Z","size":119,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T23:53:54.660Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/tale.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}},"created_at":"2022-12-07T22:10:23.000Z","updated_at":"2022-12-07T22:10:58.000Z","dependencies_parsed_at":"2024-10-24T13:10:05.139Z","dependency_job_id":"1d35b47a-82f9-404f-9c44-594cfbbbf7d6","html_url":"https://github.com/tale/calboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tale%2Fcalboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tale%2Fcalboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tale%2Fcalboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tale%2Fcalboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tale","download_url":"https://codeload.github.com/tale/calboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246379376,"owners_count":20767694,"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":[],"created_at":"2024-10-24T10:44:12.934Z","updated_at":"2025-03-30T20:45:37.247Z","avatar_url":"https://github.com/tale.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# calboard\n*A very basic microservice that fixes Blackboard calendars.*\n\n\u003e I only open-sourced this project to show it off. Only my girlfriend and I use this so the code is pretty inflexible.\n\u003e If you want to deploy this, you'll need to follow the [Deployment](#deployment) section, the current values in `wrangler.toml` are wrong.\n\n## Justification\nPretty much every student will have heard about Blackboard (or maybe Canvas). It's the LMS that many universities use to as their learning platform and students both love and hate it. It does have this one neat feature where it can give you a calendar URL which you can subscribe to so that assignments and deadlines show up in your feed. However, this calendar does not bode well for certain apps like `Calendar.app` on `macOS` or `iOS`.\n\nWith that, I implemented the following changes when parsing the calendar subscription:\n- Rounds up 59th minute events (It's common for deadlines to be 11:59 instead of 12:00)\n- Sets the starting time of the event 1 hour back to compensate for spacing issues\n\n## Deployment\nBecause I'm lazy, this is a Cloudflare Worker and needs to be deployed using `wrangler`. For more information on that, refer to the [documentation](https://developers.cloudflare.com/workers/) supplied by Cloudflare. Additionally, you'll need to bind a Workers KV instance to the worker in `wrangler.toml` and the application will create routes as follows. Each route will be advertised as `/{key}.ics` and will return the fixed version of the calendar supplied by the `value` of that key.\n\n\u003e Copyright (c) 2022 Aarnav Tale.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftale%2Fcalboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftale%2Fcalboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftale%2Fcalboard/lists"}