Nick Smith68 downloadsAcademic year planner for teachers — timetable management, lesson tracking, and weekly planning.
A customisable academic planner for teachers — not just a calendar. Track your timetable, monitor workload, and keep lesson notes, all inside your Obsidian vault.

Teacher Planner is built for teachers.
It understands your world: periods, classes, A/B week rotations, cover lessons, directed time, and the difference between a duty and a meeting. Everything lives inside Obsidian alongside your notes — no extra apps, no subscriptions, no data leaving your vault.
A 10-step wizard walks you through full planner configuration on first launch — name, academic year, school days, periods, block types, holidays, subjects, and classes. Pre-filled with sensible UK defaults (standard periods, England 2025–26 term dates) so you can be up and running in minutes. Each step is skippable and everything can be changed later in settings.
Run more than one planner inside the same vault — useful if you teach across two schools, have a very different timetable each year, or want to keep a clean record of previous academic years. Switch between planners instantly; each has its own timetable, classes, and lesson notes in a separate subfolder.
A colour-coded weekly grid showing your full timetable at a glance. Navigate forward and back by week, see classes, duties, and events laid out by period, and jump straight into a lesson note with a single click.
Build your timetable visually using the timetable editor. Define your periods, assign classes to slots, and set classrooms per slot. Full support for A/B week rotation — the plugin tracks which week you're on automatically based on your academic year start date.
Configure subjects with an emoji identifier and nest class groups beneath them. Each class group has its own colour, year group, class code, and default classroom. Colours can be overridden at the class level independently of the subject.
Overlay one-off events onto any period on any date — cover lessons, duties, trips, meetings, parents' evenings, or any other one-off. Date events sit on top of your timetable without disrupting it and can be added directly by clicking an empty cell in the week view.
Each lesson in the week view has a dedicated note in your vault, built from a fully customisable template. Open, create, or edit a lesson note with a single click. Notes are stored in your planner folder and work with all standard Obsidian features — backlinks, search, graph view.
Track your statutory directed time across the academic year against the STPCD 1,265-hour limit. The tracker counts timetabled lessons, directed-time activities, and date events, projects a year-end total, and excludes holidays and INSET days automatically. Supports part-time timetable fractions. Exports a detailed Excel report for union or management use. A plain-language guide note is created in your planner folder when the tracker is enabled.
Export your timetable and planning data to Excel (.xlsx) for sharing, reporting, or archiving.
Define the types of slot that make up your school day — Lesson, Break, Registration, Administration, or any custom type — and assign them to your periods. Each block type has its own colour used to shade the week view grid.
main.js, manifest.json, and styles.css.obsidian/plugins/teacher-planner/Requirements: Obsidian v1.4.0 or later
Adding a special event:

Timetable editor:

The plugin is fully configurable from Settings → Teacher Planner. A few of the most-used panels:
Directed Time Tracker — set your contracted hours, timetable fraction (for part-time staff), default lesson duration, and export a weekly Excel report:

Events — Directed time — define the activities that count toward directed time (cover, CPD, duty, meetings, tutor time, protected time, and so on). Each activity has a colour, optional default classroom, and default duration:

School Timetable — define the periods that make up your school day. Each period has a name, start/end time, and block type (Lesson, Break, Registration, Administration). Block colours shade the week view:

If Teacher Planner saves you time, consider buying me a coffee — it helps keep the project going.
Found a bug or have a feature request? Open an issue.
git clone https://github.com/NSDerred/teacher-planner-obsidian.git
cd teacher-planner-obsidian
npm install
# Development (watch mode)
npm run dev
# Production build
npm run build
# Type checking
npm run typecheck
src/
├── main.ts # Plugin entry point
├── types.ts # Shared TypeScript types
├── settings.ts # Default settings
├── views/ # Main views (WeekView, CalendarSidebar)
├── modals/ # All modal dialogs
├── settings/ # Settings tab
└── utils/ # Utility functions
Teacher Planner uses the xlsx (SheetJS) library to generate Excel
workbooks for the export features. It does not read or parse user-supplied
Excel files. Known vulnerabilities in xlsx (CVE-2023-30533 prototype
pollution and ReDoS issues) require maliciously crafted input to exploit,
which is not a vector here. If you need to import data into the plugin,
use the in-app UI rather than feeding it Excel files.
Teacher Planner is dual-licensed. Pick whichever option suits you:
GPL-3.0 © 2026 Nick Smith — free to use, fork, and modify. If you distribute a modified version, the source for your version must remain available under GPL-3.0 too. This is the right choice for individuals, schools, and contributors.
Commercial Licence — for incorporating Teacher Planner into a commercial product without GPL's copyleft requirements. Contact [email protected] for terms.
Both options grant the right to use the plugin; the difference is in how you can distribute modifications.