This makes use of the Canvas LMS API as well as the Notion API to plug Canvas assignments into Notion
- Download the folder
- Follow setup instructions below
- Run the Python script every time you want to update the database
Notes
- If the files are still in a folder together and the preferences are set up correctly, you should just be able to run the Python script and it will display your assignments in the Notion database!
- If there are any problems, please contact me on Discord @ihyperspacei or open an issue here
Create a notion database with the following, in the same order:
- Name (title)
- Class (text)
- Date (date)
- Completed (checkbox)
- Points (number)
- AutoUpdate (checkbox)
These are case sensitive, example below:

Canvas Link
- Literally just copy the base url for your Canvas access (e.g. xx.instructure.com)
- In UserPreferences.json, set the value of canvas_url to the link copied (should replace )
Canvas Token/Key
- Navigate to your Canvas dashboard -> profile -> settings
- Scroll to Approved Integrations and add new access token
3. Copy and save token ID (you can't see this again without regenerating it)
4. In UserPreferences.json, set the value of canvas_key to the token copied (should replace )
Notion Database ID
- Log into Notion on a web browser
- Navigate to your database page
- Copy the string of characters in the URL from the / to the ?
- In UserPreferences.json, set the value of notion_database_id to the string copied (should replace <DATABASE_ID>)
Notion Token
- Navigate to https://www.notion.so/my-integrations/
- Create new integration
- Enter the required fields
- Copy the token
- In UserPreferences.json, set the value of notion_token to the token copied (should replace )