11 · 2026
ตารางเรียน + ส่งเข้าปฏิทินClass Timetable + Calendar Export
จัดตารางเรียนรายสัปดาห์ เตือนเมื่อเวลาชนกัน บอกคาบถัดไป และส่งออกไฟล์ .ics ให้ทุกคาบขึ้นในปฏิทินมือถือซ้ำทุกสัปดาห์จนปิดเทอมBuild your weekly timetable, catch clashes, see your next class, and export an .ics file so every class repeats in your phone calendar.
// คาบชน = วันเดียวกัน และช่วงเวลาทับกันif (a.day === b.day && toMin(a.start) < toMin(b.end) && toMin(b.start) < toMin(a.end)) out.push([a, b]);// เกิดซ้ำทุกสัปดาห์จนปิดเทอม`RRULE:FREQ=WEEKLY;BYDAY=${day};UNTIL=${end}`ใช้ทำอะไร
- ใส่วิชา วัน เวลา ห้อง → เห็น ตารางรายสัปดาห์ ทันที
- เวลาชนกัน จะถูกไฮไลต์และแจ้งเตือน (เช่นตอนลงทะเบียนเรียน)
- การ์ด "คาบถัดไป" บอกว่าคาบต่อไปคืออะไร ห้องไหน อีกกี่นาที
- ส่งออก .ics → เปิดใน Google Calendar / ปฏิทิน iPhone แล้วทุกคาบขึ้นซ้ำทุกสัปดาห์จนวันปิดเทอม
- พิมพ์ตารางได้
รายละเอียดทางเทคนิค
- ไฟล์ .ics สร้างตาม RFC 5545 เอง:
VTIMEZONEAsia/Bangkok,RRULEรายสัปดาห์, escape, ;และ ตัดบรรทัดที่ยาวเกิน 75 byte โดยไม่ตัดกลางตัวอักษรไทย (UTF-8 หลาย byte) — มี test ตรวจ - หาวันแรกของแต่ละวิชาจากวันเปิดเทอม (เช่น เปิดวันพุธ วิชาวันจันทร์เริ่มสัปดาห์ถัดไป)
- ตารางแบบกราฟิกซ่อนจาก screen reader แล้วมี รายการแยกตามวัน ที่อ่านได้ครบแทน
What it does
- Enter course, day, time and room → your weekly grid appears instantly
- Clashes are highlighted and flagged (handy at registration time)
- A "next class" card shows what's next, where, and how long until it starts
- Export .ics → open it in Google Calendar or iPhone Calendar and every class repeats weekly until the semester ends
- Printable
Technical details
- The .ics file follows RFC 5545: an Asia/Bangkok
VTIMEZONE, weeklyRRULE, escaped, ;, and lines folded at 75 bytes without splitting multi-byte Thai characters — tested - Each course's first date is computed from the semester start (start on a Wednesday → Monday classes begin the next week)
- The visual grid is hidden from screen readers; a per-day list carries the same information