Room Search Is Here
The rooms feature is now public! Find empty classrooms, explore building schedules, and see where your classes meet. Perfect for finding study spaces between classes or checking if a room is free.
What's new, what's fixed, what broke and got patched. The full history.
The rooms feature is now public! Find empty classrooms, explore building schedules, and see where your classes meet. Perfect for finding study spaces between classes or checking if a room is free.
A lot of work behind the scenes to make the scraper more reliable and the 'What's Changed' feed cleaner. Nothing flashy, but you'll notice fewer errors and faster loading.
Built the foundation for a faster and more reliable 'What's Changed' feed. Changes now load instantly instead of recalculating every time you open the modal.
We dug deep into a bug where courses were showing outdated section counts. Turns out our cache was a bit too eager. Now when you refresh, you'll always get the latest data from CRS.
A quick tune-up to how we handle semester selection when scraping CRS. Nothing you'll notice, but it keeps our data flowing smoothly.
UPSked is officially public! Built over ~20 days during the holidays to help you plan your schedule in minutes, not hours.
Huge day for mobile users and data reliability. Fixed scrolling issues on mobile, Safari drag compatibility, and added smarter caching for your course data.
Search just got a lot smarter. We've added recent search history, keyboard navigation, and department suggestions. We also introduced a better offline engine.
Built a new course search experience from the ground up with local catalog matching, modal support, and department suggestions. Also fixed theme switching to be instant when your OS theme changes.
Started the new year with some pixel alignment fixes for the section list restrictions. We've ensured that the restriction shield icon sits perfectly aligned with its text label for a cleaner look.
UPSked now syncs seamlessly across multiple tabs while maintaining independent version views. We've introduced probability-aware ghost blocks, making it easy to see the enrollment chances of each section when dragging. This update also brings critical mobile scrolling fixes, smarter onboarding dismissal, and redundant transaction prevention.
A massive polish-pass on the section list experience. We've implemented responsive container-query layouts, live probability badges (Supply vs Demand), and smart restriction parsing for a more informative sidebar.
UPSked now loads from cache after your first visit. Your schedule stays accessible without internet. Also fixed several stability issues and performance bottlenecks.
You now get a personalized UPSked card! Download it, copy it, share it with your blockmates.
The welcome experience got a major glow-up. New visitors now see an interactive demo that shows exactly how UPSked works — sections animate into a course card and appear on a mini calendar. We also added smarter onboarding that remembers what you've already told us, updated our branding, and fixed some annoying bugs.
Big day. Calendar now understands atomic blocks — hover or click on any section and its related sections light up together, just like CRS treats them. We also added favicons, Vercel Analytics, and did a ton of SEO work to help more UP students find UPSked through search.
We ran a comprehensive security audit and fixed everything we found. Your schedule data is now more secure than ever. We also added a welcome modal for new visitors, redesigned the feedback form based on early tester suggestions, and made keyboard shortcuts easier to discover. The help button got a slick new menu, and the onboarding flow now starts automatically after you dismiss the welcome screen.
Ever wondered what 'THRU' or 'WFX1' actually means? Now when you hover over a section badge on your course card, we'll tell you. It's like having a decoder ring for your schedule. We also fixed how lab and lecture sections group together — no more orphaned labs floating around.
Some courses were showing 0 sections when they definitely had sections available. We tracked down the bug and squashed it. All 2,428 courses with sections now display their correct counts.
UPSked now has a desktop app for Windows and Mac. It works offline once you've loaded your courses, and updates itself automatically. We also moved our course data to faster servers, so searching feels snappier no matter where you are. Plus, there's a new "What's Changed" modal that shows you section changes at a glance.
Added a helpful indicator that tells you when scheduled sections are hiding below your visible calendar area. The context menu got a visual refresh with rounded corners and a blur effect. We also fixed several hover state issues and made the rescheduling experience cleaner by removing the dimming overlay.
We rebuilt the search engine to be more accurate. Multi-word searches now work properly, so you can search 'intro economics' and find what you're looking for. Short queries (2-3 characters) are handled better, and courses not offered this semester are automatically filtered out.
The feature we spent the most time on. One click and your planned schedule gets added directly to your CRS enlistment cart. No more copying section codes one by one, no more switching between tabs. Just plan your schedule, click the button, and you're done. We also rebuilt the mobile experience from the ground up with a swipe-up bottom sheet and fuzzy search.
The calendar grid is now scrollable with a fixed header, making it easier to navigate long schedules. We also renamed from UPScheduler to UPSked — shorter, catchier, same great tool. The 'Enlist to CRS' button now has the right color in dark mode.
This is the big one. We now support CRS atomic blocks — those bundled course combinations that must be taken together. When sections are linked, they'll appear grouped in your section list. We also added an in-app feedback system so you can report bugs or suggest features without leaving the app. Mobile users get swipe navigation between the sidebar and calendar.
Improved how we handle cases when the course catalog is still loading or unavailable. Search now works more gracefully while data is being fetched, and switching semesters is smoother with fewer edge cases causing confusion.
Fixed several visual glitches with hover effects. Multi-day sections no longer flicker when you move between days, and the rescheduling preview stays stable as you explore options.
Fixed an issue where ghost blocks would stay highlighted after moving your mouse away. The hover state now clears correctly when you leave the ghost block area.
Everything got faster. Your first search is 36% faster, and repeat searches are nearly instant thanks to smart caching. Clicking on a course you've searched before loads in under 50 milliseconds. We also eliminated those annoying layout jumps when the page reloads — this one took us a while to crack, involving a clever script that runs before React even wakes up.
Refined how sections behave during drag-and-drop. Now only the specific section you're dragging is affected, leaving sibling sections untouched. The onboarding tutorial also got smoother with better state handling.
You can now add multiple sections from the same course to your calendar. Drag a course card from the sidebar and it adds a new instance instead of moving the existing one. Useful for comparing different section times or planning alternatives.
Course cards now adapt to their container size, not just the screen width. This means better layouts at every sidebar width. The entire interface got a visual refresh with improved colors, spacing, and transitions.
Right-click on any section to see a context menu with quick actions like Remove, View Details, and Copy Code. First-time users now get a 5-step tutorial that walks through the basics. We also added support for Sunday classes (yes, they exist) and professor review links on hover.
The beginning of UPSked, shared with a small group of friends who were brave enough to test an unfinished product. We built this because planning your schedule in CRS was painful and we thought students deserved a visual tool that makes enlistment less stressful. Their feedback shaped everything that came after.
Before there was an app, there was the data. We built the infrastructure to pull course information from CRS daily and keep it up to date. This release was internal-only but laid the foundation for everything that came after.