New: see the walk between your classes on the timetable

Changelog

A simple record of recent NTUMods updates, fixes, and new features.

Q4 2026 13 updates

24 Oct 2026

A more consistent site

  • ImprovementEvery page now shares the same cards, links, buttons, headings and icons. Text is easier to read in light mode, cards stand out from the page, and hovering anything clickable gives the same feedback everywhere.
  • ImprovementThe developer docs have an On this page list again, and the page sits centred between its two side navs. On phones, both navs open as drawers from a bar under the menu.
  • ContentStudent links adds the official campus map, One Stop @ SAC, a Student life section with clubs, the Students' Union and health care, and every NTUMods page.
  • Bug FixOn phones, tapping the dimmed area beside an open drawer now closes it, and the copy button on code no longer shows above the menu.

23 Oct 2026

MCP server

  • New FeatureA public, read-only MCP server lets AI assistants such as Claude and ChatGPT search modules and read class indexes and exams. No account or key is needed.
  • ContentThe privacy policy now covers what the MCP server logs, and the terms of use name it alongside the public API.

22 Oct 2026

Timetable redesign

  • New FeatureThe timetable page has been redesigned. A single toolbar holds every tool, plans can be named, the side panel can sit beside or below the grid, and the new Appearance dialog changes the radius, density, contrast and colour palette. Walking between classes now opens as a map dialog, and the shared timetable page uses the same layout with a clearer copy dialog. Everything that changed: NTU Timetable Planner Redesign.
  • ImprovementStandardised scale is a new table setting that gives every half hour the same height. Save to calendar shows a preview before the download, and actions that would overwrite a plan now ask first.
  • ImprovementDialogs become drawers on phones with consistent spacing and scrolling, and the page no longer jumps while it loads.

21 Oct 2026

Walking between classes

  • New FeatureThe timetable page now has a Walking between classes button under Generate Timetable. Pick a day to see your classes in order on the campus map, the walking time between each pair of venues, and a warning when the gap is too short. Walks are looked up only when you open it, for one day at a time. The Calendar, Generate and AI tabs are gone: generate options now show by default. Docs: NTU Timetable Planner Guide.

20 Oct 2026

Campus map

  • New FeatureNew campus map. Search any lecture theatre, tutorial room, hall or canteen, see which level it is on with indoor floor plans from Basement 7 to Level 9, and get walking directions with times between classes. Switch between standard, hybrid and satellite views, browse halls, food, bus stops, car parks and toilets, and share a link that opens the exact view. Docs: NTU Campus Map: Find Any Lecture Theatre, Room and Walking Route.
  • DataVenues from the last two semesters are matched to rooms using the official facilities list and room codes. A few are matched by name only and are marked as approximate on the map.

19 Oct 2026

Developers page

  • New FeatureNew developers page documents the free module API and the open module, index and exam data, with a try-it box and an OpenAPI file for student projects.
  • ContentThe privacy policy now covers the public API and AI assistants that use WebMCP.

18 Oct 2026

AI agent support

  • New Feature[Dev preview] NTUMods now offers its tools to AI agents through WebMCP, a new browser standard that is still in early testing and depends mostly on the Chrome team. In a supporting browser, an assistant can search modules, check which indexes fit your plan, generate timetables and plan your CGPA, all on your own saved plans. Nothing is sent to our servers. Most students will not see a change yet. Docs: Read the WebMCP docs.
  • New FeatureA public AI catalog and a module API help assistants that cannot run the site find the llms.txt summary and the open module, index and exam data.

17 Oct 2026

Privacy policy updated

  • ContentThe privacy policy now matches how the site works today: feedback is emailed to us rather than stored in a database, and the site is hosted on Cloudflare.

17 Oct 2026

Landing page redesign

  • ImprovementA new design for the home page! See example timetables for different courses, check this semester at a glance and find features and guides faster.
  • ImprovementSeveral other pages have been updated with the new design: FAQ, feedback, changelog, links, sitemap, privacy and articles.

15 Oct 2026

AY 2026 Semester 2 now available

  • DataAY 2026 Semester 2 course data is now live: 1,092 courses and 4,306 indexes available in the timetable and module browser. See what is new in Semester 2.
  • ImprovementCalendar export now uses the Semester 2 start date (11 January 2027) and recess week.
  • ContentUpdated the NTU course catalogue with Semester 2 module counts. The exam schedule still shows Semester 1 until NTU releases the Semester 2 timetable.

8 Oct 2026

CGPA Planner

8 Oct 2026

New Tools section and the FGO Optimiser

  • New FeatureNew Tools page, with a link in the navbar and footer, showing every NTUMods tool as a card. It starts with the FGO Optimiser and the existing Wallpaper Maker.
  • New FeatureFGO Optimiser: upload your transcript PDF and see which modules to Flexible-Grade for the highest CGPA within your quota and the 12 AU Core, ICC and MPE cap. Your transcript is read in your browser and never uploaded. Docs: NTU FGO guide.
  • ImprovementThe optimiser counts FGO you have already used. Modules graded Pass are detected from the transcript, and AU from No Record modules, which no longer appear on a transcript, can be added by hand.
  • ImprovementThe optimiser shows how much each module would change your CGPA if you Flexible-Graded it, keeps your CGPA and quota visible while you scroll, and has a Try with sample data button.
  • ContentThe NTU FGO guide now opens with a plain definition, adds a Pass vs No Record table and new FAQ entries, and links to the optimiser. The Links page, AI instructions, llms.txt and sitemap list the new section too.

Q3 2026 5 updates

13 Aug 2026

Mobile timetable rebuilt

  • Bug FixThe mobile Add mods drawer wasn't reliably opening, and tapping a module to change its index could conflict with it. Rebuilt so it opens and closes the way every other drawer in the app does, with index picking working correctly inside it.
  • Bug FixSearch and note fields on mobile no longer trigger iOS's automatic zoom when tapped.
  • ImprovementPick indexes moved from a permanent button on the toolbar into the ••• menu, so it no longer competes for space with the rest of the toolbar on small screens.
  • ImprovementTimetable cells are more compact on mobile by default, regardless of your chosen density in Settings — which still applies from tablet width up.
  • Bug FixCustom block fields (type, day, venue, timing) no longer squeeze into cramped two-column rows on narrow screens.

10 Aug 2026

Standardised scale and notes

  • Bug FixTimetable blocks now reliably colour their whole 30-minute slot, even when the text is short — some blocks were only colouring the height of their own text, leaving a half-coloured gap next to fully coloured blocks of the same length.
  • New FeatureA new Standardised scale table setting locks every 30-minute row to the same height, so lesson length and break length stay visually comparable across the whole grid instead of stretching to fit whichever block has the most text.
  • New FeatureRegistered modules can now carry a personal note — click a module in the sidebar to add one, scoped to just that index (e.g. "seat near the door" for one tutorial group) or to every index of that module. A coloured dot marks which modules have a note, and hovering shows it — both in the sidebar and on the block itself.

30 Jul 2026

Generate mode shows every distinct timetable

  • Bug FixGenerate mode no longer wastes its results on look-alikes. It used to stop after 30 combinations and then hide the duplicates, so if 25 of those 30 put your classes in the exact same slots you were left cycling through 5 timetables — even when far more genuinely different ones existed. Uniqueness is now decided while generating, so you get up to 60 distinct layouts.
  • ImprovementA Unique layouts only switch sits above the Generate button, on by default. Turn it off to cycle through every index number combination, including ones that share the same timeslots — useful when your first-choice index is full and you need a fallback that keeps the same schedule.
  • New FeatureGeneration Settings has a Reset button. One click restores the defaults — day hours, breaks, blocked slots, relaxed class types and any index locks — instead of undoing each setting by hand.
  • ImprovementThe colour legend and the hidden-information notice now sit directly under the timetable overview rather than in a separate row further down, and the exam disclaimer links to the exams page.

28 Jul 2026

NTUMods runs on Astro now

  • PerformanceNTUMods is now rebuilt on Astro and now hosted on Cloudflare's global network — pages should feel snappier no matter where in the world you're loading from.
  • ImprovementNo visible changes to how you use NTUMods — same features, same layout, just a faster foundation underneath.

27 Jul 2026

Custom blocks in generation and sharing

  • Bug FixGenerate mode no longer ignores custom blocks — it treats them as real obstacles and won't schedule a class on top of your gym, CCA or work slot. Your own blocks stay exempt from the day-hours, lunch-break and spacing settings, so an early or late block can never make generation impossible.
  • New FeatureCustom blocks can hold multiple options — different sets of days and times for the same commitment. Generation picks whichever option fits best, just like it picks module indexes. Switch options by hand from the sidebar or by clicking the block in Pick indexes mode.
  • New FeatureShare links can now carry your custom blocks — tick Include custom blocks in the new Share dialog. For long timetables, Copy as text gives a code the receiver pastes into Import from text, choosing which plan to import into.
  • Bug FixViewing someone's shared timetable no longer draws your own custom blocks over it.

Q2 2026 10 updates

24 Jun 2026

Filter modules by day and time

  • New FeatureFilter the module browser by day and time — select which days you're available and set a time window (e.g. no classes after 6pm). Only modules with at least one viable index that fits your constraints are shown.

14 Jun 2026

Exam schedule, timetable generator improvements, and module page polish

All features and improvements in this release are based on feedback from anonymous students. Thank you!

  • New FeatureNew Exam Schedule page — search AY 2026/2027 Sem 1 exams by module code or name, group by date or school, and click any row to go to the module page.
  • DataAY 2026/2027 Sem 1 exam timetable data added — visible on the exam page and on individual module pages.
  • ImprovementRestructured module detail pages — workload moved to the top, additional info collapsed into an expandable section, and exam disclaimer added below the timetable overview.
  • Bug FixFixed Roman numerals in module titles being lowercased (e.g. "Iii" → "III") and missing spaces after sentence-ending periods in descriptions — applied retroactively across all semesters.
  • ImprovementModule descriptions with inline enumerated lists now render as proper bullet lists instead of one unbroken paragraph.
  • New FeatureGenerate timetables from a comma-separated list of module codes — paste them all at once instead of adding one by one.
  • New FeatureLock a specific index for any module before generating — the generator will only consider that registration group.
  • New FeatureHide duplicate timetable results that share identical timeslots but differ only by index number. Toggle "Hide same-timeslot duplicates" in the results panel.
  • New FeatureModule pages now include an interactive prerequisite graph so you can visualise dependency chains at a glance.
  • ImprovementWhen generation finds no results, the tool now analyses your constraints and suggests the specific setting to relax — instead of a generic error message.
  • ImprovementDuplicate plan option added to the plan actions dropdown.
  • Bug FixFixed module search input resetting mid-type after the debounce fired.

29 May 2026

AY 2026 Semester 1 now available

  • DataAY 2026 Semester 1 course data is now live — 1,126 courses and 4,842 indexes available in the timetable and module browser.
  • New FeatureCurrent semester now shown prominently in the navbar and footer.
  • ImprovementMoved Help to /faq with a table of contents for quicker navigation.

22 May 2026

Articles search, categories, and new guides

21 May 2026

Resources dropdown and mobile navigation

  • ImprovementReplaced the Help link in the navbar with a Resources dropdown grouping Changelog, FAQ, and Sitemap.
  • ImprovementRedesigned mobile navigation with a right-side drawer for easier access.
  • Bug FixFixed timetable onboarding modal not dismissing after initial setup.

21 May 2026

Timetable modes and index picking

  • ImprovementImproved index picker focus on the timetable: other modules dim heavily when picking, alternate indexes are clearly highlighted, and selecting resets immediately for the next pick.
  • New FeatureConsolidated screenshot, calendar export, and share into a single timetable actions dropdown (•••).
  • New FeatureAdded a mode selector to the timetable — Timetable, Generate, and AI modes (generation and AI coming soon).

20 May 2026

More BDE guides and navigation

  • ContentPublished 6 new BDE guides covering engineering BDEs, BDE vs minor, easy BDEs, bidding, language BDEs, and an expanded overview — all in Articles.
  • New FeatureAdded a Sitemap page listing all pages on the site.
  • ImprovementUpdated footer with better interlinks across site sections.

29 Apr 2026

Better timetable planning

  • New FeatureAdded click-to-switch index previews so you can compare class groups directly from the timetable.
  • Bug FixImproved filtering behavior when browsing and selecting indexes in the module browser.
  • ImprovementPolished mobile responsiveness and visual styling across timetable views.

29 Apr 2026

Articles and planning guides

Q1 2026 4 updates

22 Mar 2026

Feedback and support

8 Mar 2026

Data, modules, and exams

  • ImprovementMoved module browsing and module detail pages onto API-backed data routes.
  • DataAdded exam schedule data where available on module pages.
  • ImprovementSimplified semester navigation and derive the latest semester from available data.
  • DataCleaned up older data files and refreshed module/index data.

22 Mar 2026

Sharing and exports

  • Bug FixFixed timetable sharing behavior and share button handling.
  • Bug FixRe-enabled calendar export support from the timetable after compatibility fixes.
  • PerformanceImproved static data delivery to reduce serverless function usage.

21 Feb 2026

Multi-semester support

  • New FeatureAdded multi-year and multi-semester support — browse modules and plan timetables across different academic years and semesters in the module browser.
  • ImprovementCurrent academic year and semester now shown in the page header with no layout shift.

Q2 2024 1 update

9 Jun 2024

AY 2024/2025 data

Q1 2024 1 update

30 Mar 2024

Workload info and module filtering

  • New FeatureAdded a workload breakdown table to each module page showing lecture, tutorial, lab, and project hours.
  • New FeatureAdded module level filtering (1000–4000+) to the module browser.

Q4 2023 1 update

19 Dec 2023

Timetable sharing

  • New FeatureShare your timetable with friends via a link.
  • ImprovementIndexes are now assigned without clashes automatically when picking modules.

Found something wrong?

NTUMods is built and maintained by one person, so a short note goes a long way. Pick what fits, add the details, and I will look at it.

I'll use this to follow up with you.

Attaches your saved timetables and settings to help debug the issue. On by default, turn off to exclude it.

Developer? Open an issue or PR.