⏱ Time Window Scheduler
Know exactly what is active right now — at all times.
Time Window Scheduler lets you define scheduled time windows and see their live status directly in VS Code — with custom colors, countdowns, and notifications.
Unlike simple reminders, Time Window Scheduler creates a persistent visual state for periods that matter while you work.
When a window is active:
🔴 Release Freeze · 1h 24m left
When multiple windows are active:
Each active window gets its own colored segment in the Status Bar.
When nothing is active:
○ nothing active
📸 Screenshots
Activity Bar — one window active

Status Bar — nothing active


✨ Features
| Feature |
Description |
| 🗓 Flexible schedules |
Every day, specific weekdays, weekends, or specific days of the month |
| 🕐 Multiple time spans |
Create multiple spans in one window, e.g. 12:30–15:30 + 17:30–21:30 |
| 🌙 Cross-midnight spans |
Supports spans such as 22:00–02:00, shown with a 🌙 +1d badge in the editor |
| 🎨 Custom colors |
Give each window its own color for quick visual recognition |
| ⏳ Live countdown |
Smart countdown units such as 45s, 12m, 1h 30m, and 2d 3h |
| 🔔 Notifications |
Get notified when a window starts and optionally before it starts |
| 📌 Activity Bar panel |
Manage your windows from a dedicated Activity Bar view |
| 💾 Persistent storage |
Your windows survive VS Code restarts |
| 🌍 Local time |
Uses your system's local timezone |
| 📴 Offline-first |
No account, cloud service, or internet connection required |
🚀 Installation
From the VS Code Marketplace
- Open VS Code.
- Open Extensions (
Ctrl+Shift+X).
- Search for Time Window Scheduler.
- Click Install.
Or install it directly from the
urlVS Code Marketplacehttps://marketplace.visualstudio.com/items?itemName=mh-farzin.vscode-time-windows.
From source
git clone https://github.com/mhfarzin/vscode-time-windows.git
cd vscode-time-windows
npm install
npm run compile
Then open the project in VS Code and press F5 to launch an Extension Development Host.
To package and install a VSIX:
npx vsce package
code --install-extension vscode-time-windows-0.1.0.vsix
🎯 Example use cases
Time Windows are useful whenever a specific period should change how you work:
🔴 Release Freeze — Mon–Fri 16:00–18:00
"Do not merge or deploy"
🔵 Deep Work — Mon–Fri 09:00–11:00
"Avoid interruptions"
🟡 Expensive API — Every day 12:30–15:30 and 17:30–21:30
"API usage costs are higher during this period"
Other examples:
- Code freeze and release windows
- Expensive API or infrastructure pricing periods
- Meetings and focus blocks
- On-call or support shifts
- Maintenance windows
- Deployment windows
- Team-specific working hours
- Any recurring period where you want a persistent reminder
🕹 Commands
Open the Command Palette with Ctrl+Shift+P and search for Time Windows.
| Command |
Description |
Time Windows: Open |
Open the management panel |
Time Windows: Add |
Create a new time window |
Time Windows: Edit |
Edit an existing time window |
Time Windows: Toggle |
Enable or disable a time window |
You can also delete, duplicate, and enable/disable windows directly from the management panel.
⚙️ Settings
| Setting |
Default |
Description |
timeWindows.enabled |
true |
Master on/off switch |
timeWindows.showCountdown |
true |
Show a live countdown for the active window |
timeWindows.refreshInterval |
10 |
Refresh interval in seconds |
timeWindows.enableNotifications |
true |
Enable start notifications |
timeWindows.notifyBeforeStart |
true |
Enable notifications before a window starts |
timeWindows.notificationLeadTime |
10 |
Number of minutes before the start to notify |
🧩 How it works
A Time Window consists of:
TimeWindow
├── Name
├── Description
├── Time spans
├── Schedule
├── Color
└── Enabled
Schedules can be:
Every day
Weekdays
Specific days of the month
A single Time Window can contain multiple time spans, so one rule can cover several periods during the day.
The schedule calculation core (ScheduleEngine) is a pure module with no VS Code dependency, making it easy to test and extend. The project currently includes 31 unit tests for the scheduling logic.
🛠 Development
npm install # Install dependencies
npm run compile # Type-check + lint + build
npm run watch # Watch mode
npm test # Run tests
npx mocha out/test/scheduleEngine.test.js # Run pure schedule tests
Project structure:
src/
models/ Data models (Schedule, TimeWindow)
services/ ScheduleEngine + Storage + Notification
ui/ StatusBar + Panel + Editor (webview)
commands/ Command registrations
test/ Unit tests
Repository
Source code, issues, and development information are available on
urlGitHubhttps://github.com/mhfarzin/vscode-time-windows.
📄 License
MIT — free, open source, and offline.
No account. No cloud service. No internet connection required.