JM
Academic CopilotGood day, Joe

Settings

Integrations & schedule

What's wired up, what isn't, and how to turn the rest on.

Sync Canvas

Pull the latest courses, assignments, and grades now.

Daily digest

See exactly what Seshat would send you today.

Device alerts

Get the stressors as push notifications on every device you open Seshat on — Mac, iPhone, iPad, any browser. Enable it once per device.

Checking…

School calendar

Pull your classes (recurring ones too) from your Google secret iCal feed. Re-syncs every cycle.

Find it in Google Calendar → that calendar's Settings→ “Secret address in iCal format”. Keep it private — anyone with the link can read the calendar. docs/school-calendar.md

Integration status

Canvas

Active

Connected to alueducation.instructure.com

AI (Claude)

Not configured

Add ANTHROPIC_API_KEY to enable explain / outline / chat.

Get a key from the Anthropic console and set ANTHROPIC_API_KEY. docs/ai.md

Telegram

Not configured

Set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID for push nudges.

Create a bot via @BotFather, grab the token and your chat id. docs/telegram.md

Google Calendar

Not configured

Set GOOGLE_CLIENT_ID, secret, and a refresh token to push due dates.

Run the OAuth flow to mint a refresh token (one-time). docs/google-calendar.md

Apple Reminders

Not configured

Set REMINDERS_ENABLED=true to mirror deadlines into Reminders.

Local runs osascript here; ssh runs it on your Mac over Tailscale. docs/reminders.md

Schedule

Read-only — set via env. Restart the app to apply changes.

Canvas sync
*/30 * * * *
how often Canvas is polled
Daily digest
0 7 * * *
when the summary fires
Timezone
Africa/Kigali
used for all schedule times

Due-soon nudges fire at: 168,48,24,3 hours before each deadline.