Class Schedule Conflict Checker
Day, times, then the name: Tue 14:00-16:00 Physics. Several days on one line are read as several sessions. Add odd weeks, even weeks, Week A or weeks 1-5 and only the weeks that really coincide count as a clash.
Clashes on this timetable
2 clashes
1 of them happen on some weeks and not others.
- Linear Algebra vs Statistics Lab, Mon 10:0030 min, every week
- Research Seminar vs Careers Workshop, Thu 16:001 h, odd weeks only
What was read from what you pasted
- Mon 09:00–10:30Linear Algebraevery week, 1 h 30 min
- Mon 10:00–11:00Statistics Labevery week, 1 h
- Mon 11:00–12:00French Readingevery week, 1 h
- Tue 14:00–16:00Physics Practicalodd weeks only, 2 h
- Tue 15:00–17:00Chemistry Practicaleven weeks only, 2 h
- Thu 15:00–17:00Research Seminarodd weeks only, 2 h
- Thu 16:00–17:00Careers Workshopevery week, 1 h
A clash is an overlap of real minutes, so classes that touch end to end are left alone. A session whose finish time is earlier than its start is read as running past midnight and is laid out across the boundary, which is how a late Sunday session can collide with something on Monday morning. Nothing is uploaded: the timetable is parsed in your own browser.
Why a timetable hides its own collisions
A registration system will usually stop you booking two things in the same slot, and then it stops looking. What it rarely checks is the timetable you assembled out of one department’s lectures, another’s labs, a language class that runs fortnightly and a society meeting nobody put in the system at all. Those live in different places, arrive at different times of year, and the collision between them shows up in week three when you are standing in the wrong building.
This tool takes the whole thing as text, reads each line into a day, a start, a finish and an optional pattern of weeks, and then compares every pair. Pairwise comparison is dull but complete: with a dozen sessions it makes sixty-six checks, which is exactly sixty-six more than reading down the page tends to manage.
Touching is not overlapping
The single most common false alarm in software of this kind treats a shared boundary as a collision. A seminar finishing at 11:00 and a lecture beginning at 11:00 occupy no minute in common, so they are not reported. They may still be impossible — ten minutes of corridor between two buildings is a real constraint — but that is a travel problem with a different answer, and burying it inside a list of clashes makes the genuine ones harder to see.
Every session is therefore held as a half-open span: it includes its start and excludes its finish. Two spans conflict only when the later start falls strictly before the earlier finish. The check is one comparison, and getting it wrong by a single character turns every back-to-back pair on a full timetable into a warning.
The fortnight problem
Plenty of institutions run sessions on alternating weeks, labelled odd and even, or A and B, or by explicit week numbers on the departmental handout. Two of those can sit on precisely the same hours of the same weekday and never once meet, and a checker that ignores the pattern reports a clash that does not exist. The reverse is worse: a class every week against a class on odd weeks does collide, but only half the time, and that is the kind of thing a person discovers by turning up.
So week patterns are intersected before the clock is consulted. Odd against even yields nothing and the pair is dropped. Anything against a session that runs weekly yields the narrower of the two, and the result is reported with the weeks named, so a fortnightly collision is never quietly presented as a permanent one.
Sessions that run past midnight
An observing session, a radio show, a night shift in a teaching hospital: a finish time earlier than a start time means the session ran through midnight into the following day. Laying every session out on a single 10,080-minute week handles this without special cases, because the span simply continues across the boundary and is split where it crosses. A late Sunday session wraps round to Monday morning and can collide with the first thing there, which is a real result that a day-by-day comparison cannot produce at all.
Reading a timetable into the checker
What layout does each line need?
A day, a time range and a name, in any order that reads naturally: "Tue 14:00-16:00 Physics" and "Physics, Tuesday, 2pm to 4pm" both work. Several days on one line become several sessions, and anything left after the day and the times is taken as the name.
How do I mark a class that only runs some weeks?
Write "odd weeks", "even weeks", "Week A", "Week B" or an explicit list such as "weeks 1-5" or "weeks 2,4,6" anywhere on the line. Saying only that something alternates is not enough to place it, so that case is treated as running every week and flagged rather than guessed at.
Why are two classes with a shared boundary left alone?
Because they share no minutes. Whether you can physically get between them is a question about distance rather than about the timetable, and mixing the two would fill the list with entries that are not conflicts at all. The gap is visible in the parsed sessions if you want to judge it yourself.
Does the timetable I paste go anywhere?
No. The text is parsed by JavaScript running inside your own browser and nothing is sent to a server, stored or logged. Closing the tab is all it takes to be rid of it, and nothing is kept between visits.