StudentM8

New here?

New event

Checklist

    Keeps the planner from scheduling study sessions right up against this event — e.g. 30 min after a tiring lab, or 10 min either side of a commute. "Buffer before" stacks on top of any routed travel time below as extra prep time.

    Used by the Agenda's "Leave by" widget to route a real travel time to this location.

    Linked documents

      Study helper

      Get an AI summary and key topics for this document, then ask for study guidance on anything you don't understand.

      Flashcards

      Generate spaced-repetition flashcards covering this document's key concepts.

      Scheduling settings

      Controls the planner's "Plan my week" and the free-hours total — not any single event.

      How much a course's low running grade (Grades tab) should push its goal ahead of others for contested free time when planning your week. 0 = grades have no effect (deadlines only, today's behavior); 100 = full effect.

      How much an approaching "important" mock (flagged on the Grades tab, within 2 weeks) should push its course's goal ahead of others for contested free time. Ramps up the closer the mock gets. 0 = no effect; 100 = full effect. Stacks with the low-grade boost above.

      Used by the "Focus timer" on the Agenda's study-session widget only — independent of the max work block/break settings above, which stay the planner's own knobs.

      API keys

      Optional — set your own free key to use your own quota for a feature instead of the app's shared one. Leave a box blank and save to go back to the shared key.

      Calendar feed

      A read-only link you can subscribe to from Google Calendar, Apple Calendar, or Outlook, so your events also show up there. Anyone with this URL can view your calendar — treat it like a password, and regenerate it if it's ever shared by mistake.

      Google Calendar

      Paste your calendar's own private link to import its events. Read-only — nothing is ever written back to Google. In Google Calendar: Settings and sharing → your calendar → "Integrate calendar" → copy the Secret address in iCal format. Once saved, use the icon in the topbar to run (or re-run) the import.

      User management

      Create, promote/demote, suspend/block, and remove accounts. 🚫 suspends or blocks an account — denies login and signs out any already-open session immediately, reversible any time. Deleting an account permanently deletes everything it owns — courses, events, documents, goals, and to-dos.

      API usage

      Successful Gemini/OpenWeather/OpenRouteService requests, per account — including requests against an account's own key (gear icon → API keys), called out inline as "(N own key)" so they're still attributed to that account rather than disappearing from the count. The totals below cover only the shared key specifically — the number that actually matters for quota risk, since own-key requests don't touch it.

      Account Gemini (today) Gemini (all-time) Weather (today) Weather (all-time) Travel (today) Travel (all-time)

      Google OAuth

      Currently unused — everyone's "Google Calendar" section in Settings now uses a simpler pasted-link method instead (no admin setup needed, see README.md). This OAuth path still works end-to-end if set up here, kept for a future session that wants its real deletion-detection back; it's just not wired into Settings' UI right now. One client for the whole app — from a free Google Cloud project: enable the Calendar API, configure the OAuth consent screen (External, scope .../auth/calendar.readonly, add test users), then create an OAuth Client ID (type "Web application") with both http://127.0.0.1:8788/api/google-calendar/oauth/callback and https://studentm8.uk/api/google-calendar/oauth/callback as authorized redirect URIs.

      Dev inbox

      Bug reports and feature requests from every account — open ones first.

      To-do sync

      Changes made offline sync automatically once you're back online. Anything that couldn't sync stays here until you retry or discard it.

      Type at least 2 characters — ↑↓ to navigate, Enter to open, Esc to close.

      User guide

      A quick tour of every tab and icon — click a section to expand it.

      Getting started

      The sidebar lists your courses (add one below the list; click a course's name to rename/recolor it, or the ✕ to delete it — its events/goals just lose the colour link, they aren't touched). The tab row across the top (Agenda, Calendar, Goals, Review, Grades, Flashcards) is the whole app. "New event" (or press n) adds anything to your calendar — a lesson, assignment, exam, mock exam, personal item, or a recurring break/meal.

      Agenda

      Your selected day's events, to-dos, and habits in one place. To-dos split into "due" (carries forward until done) and "no due date" (always-visible lists). The sidebar alongside it shows today's weather, a free-hours/goals snapshot, a mini calendar, your next deadline, study streak, and — once there's something worth flagging — a "Needs attention" panel and per-course "How you're doing" card. A "Leave by" widget appears when your next event has a location; a "Study session in progress" widget (with a Pomodoro-style focus timer) appears when a goal-linked event's time window contains right now. Use ‹ ›, the date picker, or t to browse other days.

      Calendar

      Month/Week/Day/List views of everything on your calendar. Drag or resize an event to reschedule it; "Duplicate" on a saved event reuses it (including recurrence and linked documents) as a starting point for a similar one. "Select" mode multi-selects events to bulk-delete (selecting one occurrence of a recurring series selects the whole series) — deletes are undoable for a few seconds via the toast or the "Undo delete" button. "Print" builds a clean Mon–Sun timetable grid for saving as a PDF. An event can repeat weekly on any combination of weekdays, with an optional end date and a "Skip a date range…" action for a whole holiday/reading week at once.

      Goals & Plan my week

      Set a weekly-hours or by-a-deadline study target per course (optionally starting from a template). "Plan my week" auto-fills that week's leftover free time with study sessions — respecting your Scheduling settings (work hours, max block, breaks, per-event buffers) and prioritizing whichever goal is most at risk: nearest deadline, a course with a low running grade, or one with an approaching "important" mock exam.

      Review

      The backward-looking companion to Goals: for any week, hours you actually completed (ticked off, not just scheduled) toward each goal, a per-course breakdown, an auto-placed-vs-manual split, and a 6-week trend. Once there's enough history, a "Study patterns" panel names which day/time your study sessions cluster around.

      Grades

      Click any assignment/exam/mock's score to enter it inline — the running grade per course is a plain average of what's graded so far. Mock Exams track practice scores separately (never counted toward the real grade), can link to the real exam they're rehearsing for, and can be flagged as "important" — which also makes them behave like a real exam in countdowns/planner priority and lets you set a UCAS-style predicted grade. Each course also has a "🧮 What if?" calculator (score needed on what's left to hit a target) and a study-time-vs-grade chart.

      Flashcards

      Open a linked document and use its 📇 button to generate spaced-repetition flashcards from it. Review one at a time — click to flip, then grade Forgot/Good/Easy; each grade reschedules when the card comes back due.

      Importing events

      The photo/PDF icon reads a timetable, and the one next to it reads a course syllabus (graded assignments/exams) — both via Gemini, both showing an editable review table before anything's added. The calendar-with-checkmark icon imports from Google Calendar (paste your calendar's own private iCal link into Settings first). The ⚡ icon ("Quick add") turns one typed sentence, like "Physics exam next Friday 2pm", into a prefilled New event form.

      Documents & the AI study helper

      Attach a document link (Drive, OneDrive, anywhere — just a title + URL, nothing is uploaded) to any event. Its ✨ button gets an AI summary, key topics, and study guidance on anything you don't understand.

      Notifications & reminders

      Pick one or more reminder times (email) per event in its modal. The bell icon in the topbar shows what's due, lets you snooze or dismiss, and toggles real push notifications for your browser/phone.

      Search & keyboard shortcuts
      • Ctrl+K or / — search events, documents, and to-dos by name
      • n — new event
      • ← / → — previous/next day or week (whichever tab you're on)
      • t — jump to today/this week
      • ? — this guide
      Settings

      The gear icon covers Scheduling settings (work hours, max block, break length, and the planner's grade/mock priority sliders), your own optional API keys (use your own free-tier quota instead of the shared one), your read-only Calendar feed link (subscribe from Google/Apple/Outlook), and Google Calendar import.

      Working offline

      Once you've opened your Agenda/Calendar/Goals/To-dos/Review at least once online, they keep working offline (with a banner). Creating, editing, or deleting an event, to-do, or goal while offline queues the change and syncs it automatically once you're back — with a review panel for anything that fails to sync. A few things still need a live connection: document links, "Plan my week", the weather panel, and a handful of other secondary features.

      Feedback

      The speech-bubble icon sends a bug report or feature request straight to the developer — you'll see its status and any reply once it's been looked at.

      Use a template

      Quick start

      My templates

      Quick add

      Describe an event in plain English — it'll prefill a New event form for you to review before saving.

      Send feedback

      Found a bug, or have an idea? It goes straight to the developer — you'll see its status and any reply below once it's been looked at.

      Your reports

      Import timetable

      Upload a photo or PDF of your timetable — Gemini pulls out the weekly classes for you to review before anything's added.

      Import syllabus

      Upload a photo or PDF of a course syllabus — Gemini pulls out the graded assignments and exams for you to review before anything's added.

      Import from Google Calendar

      Reading your calendar…