Crates.io | calsync |
lib.rs | calsync |
version | 0.1.0 |
source | src |
created_at | 2021-02-03 23:29:23.481509 |
updated_at | 2021-02-03 23:29:23.481509 |
description | CLI tool to copy assignments off of canvas and into ICS format |
homepage | |
repository | https://github.com/tcheinen/calsync |
max_upload_size | |
id | 350286 |
size | 86,156 |
disclaimer: if you give me your canvas token i can do very nasty things to your canvas account please audit this code yourself before you run or ill be sad
anyway it'll use the Canvas API to grab assigments and output an ical file. For it to work you'll need a canvas token (which can be generated in your profile under Approved Integrations) inside the environmental variable CANVAS_TOKEN. It'll load a .env file in your working directory for if you don't want to just leave a canvas access token floating around in your environmental variables.
calsync 0.1.0
Teddy Heinen <teddy@heinen.dev>
CLI tool to copy assignments off of canvas and into ICS format
USAGE:
calsync [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --canvas-url <canvas-url> [default: https://canvas.instructure.com]
-o, --output <output>
cargo install calsync
Not a lot when used on it's own. You can import the ICS file manually every so often and it saves you some time from inputting the assignments manually. Let's think bigger though -- how can we set this up as something we can stick in a cron job and forget about? Composition with existing tools, of course!
calsync --canvas-url https://canvas.tamu.edu | gcalcli --nocache import --calendar="assignments"
Note: I'm using a fork of gcalcli that preserves UID when importing and as such will not import duplicates. I made a PR so hopefully this'll be default behavior eventually.