Turn a timetable into calendar events.
Paste your timetable or choose a file. Check the extracted events, fix conflicts, and download a calendar file.
Your timetable stays in this browser. No account or API key.
Schedule inputExtracted events
Synthetic week
# Fictional week Mon 09:00-11:00 CS101 Algorithms | Room 204 | Instructor: A. Reyes Mon 10:30-12:00 MATH201 Discrete Math | Room 204 Mon 14:00-15:30 CS205 Databases | Room 305 Tue 09:00-11:00 CS101 Algorithms | Room 204 Tue 13:00-14:30 MATH201 Discrete Math | Room 204 Tue 15:00-16:30 CS205 Databases | Room 305 Tue 15:00-16:30 CS205 Databases | Room 305
Monday · fictional week
- AlgorithmsCS101 · Room 204
- Discrete MathMATH201 · Room 204
- DatabasesCS205 · Room 305
Tuesday · fictional week
- AlgorithmsCS101 · Room 204
- Discrete MathMATH201 · Room 204
- DatabasesCS205 · Room 305
6 events. One duplicate row was removed before export. The Monday overlap still needs correction.
Watch a sample parse
Uses made-up timetable dataInput formats
- Text · .txt, .text, or pasted text
- CSV · .csv or pasted CSV
- Images · PNG, JPEG, or WebP
- PDF · .pdf
Use the parser in your app
@ndycode/timetablekit parses schedules and exports events. The repository also includes @ndycode/timetablekit-agent, which exposes the timetablekit.parse tool over JSON and JSONL.
import { parseTimetable, assessTimetableResult, toJSON }
from "@ndycode/timetablekit";
const result = await parseTimetable(
{ kind: "text", text: "Biology; Monday; 09:00-10:00" },
{ locale: "en-PH", timezone: "Asia/Manila" },
);
if (assessTimetableResult(result).status === "unusable") {
throw new Error("Review the timetable before exporting.");
}
const json = toJSON(result);Your files stay in your browser.
This playground processes pasted text and selected files in memory. It has no remote recovery provider. If you add one to your own app, you must ask for consent before sending timetable data.
See how privacy works