The Windows Gap
Windows knows your date as June 2, 2026. Nepal is in Jestha 19, 2083. The Gregorian and Bikram Sambat calendars coexist for every Nepali person, and Windows treats only one of them as real.
The practical consequences are mundane but constant. A government form needs today's BS date - check the phone. A salary slip arrives showing Baishakh 30, 2082 and you need the AD equivalent - open a browser. A colleague sends a scanned document whose Devanagari text renders as garbled Latin characters - it was typed in Preeti, a 1990s encoding that requires a specific font installed on the receiving system. A bank loan needs a repayment schedule in BS dates - find yet another calculator.
Each problem has a solution somewhere. None of them are in Windows itself, and none of them are in the same place.
NepDate Widget is a free Windows 10/11 desktop app that consolidates these tools. It runs as a compact pill in the taskbar showing today's Bikram Sambat date and a live countdown to the next Nepal public holiday. Click to expand into 25+ tools, almost all of which work fully offline.
The Calendar: Three Data Layers on One Grid
The calendar tab shows a full monthly Bikram Sambat grid for any month from BS 1970 to BS 2100 (AD 1913 to AD 2043). Each cell shows the BS day number and its corresponding AD date. Below the surface, the grid combines three independent data layers rendered simultaneously.
BS dates and AD equivalents come from the NepDate library (v2.0.7), the same .NET library I maintain separately with 28,000+ NuGet downloads. NepDate embeds a lookup table covering BS 1901–2199 with pre-computed day counts for every month in every year. The grid never hardcodes a month length - it always reads the actual count from the table. For BS 2082, Ashadh has 32 days. In another year, it may have 31. The correct value is always rendered.
Tithi (तिथि) is the lunar day from the Hindu calendar, calculated from a separate dataset. Tithi runs on its own cycle - a single tithi can span more than one BS day, or less than one, and they never align cleanly on solar month boundaries. The overlay shows the tithi active for the majority of each day, individually togglable.
Public holidays and festivals come from a static dataset of Nepal's gazetted public holidays and major observances: Dashain, Tihar, Chhath Puja, Holi, Teej, Janai Purnima, Krishna Janmashtami, and the full annual list. Each entry shows its name in both Nepali and English, individually togglable. The mini bar in the taskbar computes a live day countdown by scanning forward from today through the holiday data until it finds the next upcoming holiday.
The goal was calendar data that matches the official Nepal Patro. All three layers use independently validated data and do not derive one from another. The grid also marks fiscal year boundaries - Nepal's fiscal year runs from Shrawan 1 to the last day of Ashadh in the following BS year.
Preeti to Unicode: The Encoding Problem Still Causing Pain in 2026
If you have worked with Nepali documents for more than a few years, you have encountered Preeti. It is a typeface encoding designed in Nepal in the 1990s, before Unicode Devanagari was practical on Windows. The design logic was simple: take the ASCII character table, and for each code point, draw a glyph that visually resembles a Devanagari character at screen resolution. Install the font, and typing Latin characters produces what looks like Nepali text on screen.
Without the font installed, the same text renders as Latin gibberish. Preeti text is not Devanagari - it is ASCII that relies on a specific font for visual interpretation.
This approach served its purpose for roughly two decades. Millions of government documents, court filings, university admission records, land registration papers, and newspaper articles were produced in Preeti encoding. Those institutions still exist, and so do the documents.
The problem is that Preeti text cannot be used anywhere outside its own font context. Paste it into a web form, send it by email to a system without the Preeti font, run OCR on a scanned 2004 government notice - what arrives is unreadable unless both the font and a converter are at hand.
NepDate Widget includes converters for 8 legacy Nepali fonts: Preeti, Kantipur, Himalaya, Sagarmatha, and four more. Conversion is bidirectional - legacy encoding to Unicode Devanagari and Unicode back to legacy.
The conversion algorithm is ordered string replacement. This is not a tokenizer - it is a carefully ordered sequence of pattern-to-replacement mappings applied in a single pass. The ordering constraint is critical: multi-character Preeti sequences must be matched before their component single characters are processed individually. Longer patterns - such as the three-character sequence for the conjunct consonant फ्र - must come before each of their components in the replacement list. A character-by-character approach produces wrong output because each component maps to a different Devanagari character on its own.
The mapping arrays are defined as static fields - allocated once at startup, reused for every conversion call. Paste an entire document and it converts in one pass. No line-by-line processing, no document size limit from the converter itself.
RunBox: A Config-Driven Launcher That Reloads Itself
Every Windows power user knows Win+R. It opens a Run dialog that launches executables and navigates to paths. What it cannot do: evaluate an arithmetic expression, open a web search with a custom prefix, invoke a Python script by keyword, or offer autocomplete from recent history.
RunBox fills this space. Ctrl+Shift+Space from any window - no click on the widget, no focus switch required - opens a spotlight-style input box. Type g bikram sambat calendar to open a Google search for that term. Type yt nepali songs for YouTube. Type 450 * 12 and it evaluates to 5400. Type a defined keyword to run a PowerShell script from your script library.
The configuration lives in two JSON files in %LOCALAPPDATA%: shortcuts.json for web search prefixes and scripts.json for keyword-to-script mappings. A third file, run-history.json, maintains past entries for autocomplete.
Both configuration files are watched with a 500-millisecond debounce. Edit shortcuts.json in any text editor, press save - RunBox reflects the change immediately with no restart needed. The JSON parser accepts comments and trailing commas, so the files stay readable as they grow without strict JSON compliance requirements.
Scripts can be PowerShell (.ps1), Python (.py), batch (.bat or .cmd), or WSL commands. The runtime is determined from the file extension. You define the keyword and the script path; everything else is handled automatically.
Image Tools: Why a Nepali Calendar App Supports 30+ Formats
The image tools tab handles batch compress, resize, and format conversion. All three operations can run on multiple files in a single pass.
The engine is Magick.NET, the .NET binding for ImageMagick. Its format support determines what the widget accepts: over 30 input formats, including JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF, ICO, TGA, HEIC, all major camera RAW formats (ARW, CR2, CR3, DNG, NEF, ORF, RAF, RW2, ERF, PEF, X3F), and PDF. Output formats include JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF, ICO, TGA, and PDF.
The specific format list was shaped by real Nepali use cases, not a desire for completeness.
HEIC is the default photo format on iPhones since iOS 11. Windows does not open HEIC natively without the HEIF Image Extensions codec from the Microsoft Store, and that codec is not present on every machine. Nepali iPhone users regularly need to convert photos before attaching them to government forms, uploading to portals, or sending via email. NepDate Widget converts HEIC locally - no codec required, no internet, no upload to a third-party service.
Camera RAW formats are used by Nepali DSLR photographers working events, weddings, Dashain celebrations, and trekking documentation. Converting RAW files to shareable JPEG without Lightroom, Capture One, or Bridge previously meant either owning expensive software or uploading to a web-based converter with file size limits and privacy concerns. NepDate Widget processes RAW locally, in batch, for free.
PDF compression addresses a specific document workflow common in Nepal: tax filings, land registration papers, court records, and university applications frequently arrive as large scanned PDFs. The compress operation uses QPdfNet and PDFsharp for PDF-specific size reduction, stripping metadata and resampling embedded images to bring files within email attachment and government portal upload limits.
All operations are pipelined through Magick.NET in memory. No intermediate files are written to disk during conversion - the transform and export happen in a single pass.
Network Toolkit: Seven Diagnostics on One Tab
Seven tools live in the network tab: Ping with a live round-trip time graph, Traceroute, IP Scanner, Whois lookup, DNS lookup, My IP, and WiFi Scanner. Every other tab works fully offline - the network tab requires an internet connection by design.
The IP Scanner is the most useful outside a home context. It scans a subnet for live hosts and returns the IP and MAC address of each responding device. For IT staff at Nepali schools, government offices, small businesses, and ISPs who need to inventory a local network without installing Nmap or subscribing to a dedicated scanner - it is a direct capability available without any additional software. Type the subnet range, run the scan.
The QR code tab includes a related capability that bridges offline and online use: it reads saved Windows WiFi profiles and auto-fills the password for user-owned profiles, generating a scannable QR code that another device can use to join the same network without manual password entry.
There Is More
The five features above carry the most technical depth. The full app also includes:
- BS↔AD date converter with Nepali and English digit input, date difference calculator (result in years, months, and days), and date arithmetic (add or subtract days from any BS date)
- Loan EMI calculator with full amortization schedule showing each payment date in Bikram Sambat - useful for bank loan paperwork and repayment planning
- Traditional Nepali unit converter: land (Ropani, Aana, Paisa, Dam, Bigha, Katha, Dhur, Khetmuri) and weight (Tola, Chatak, Dharni, Mana, Pathi, Muri), all matched to Nepal Weights and Measures Act reference values
- Password generator with configurable character sets including Nepali characters, configurable length, and a live entropy-based strength meter; also checks the strength of an existing password
- QR code generator and decoder: plain text, URL, vCard, WiFi - export as PNG or copy to clipboard; decode mode reads any QR image file
- Notes pinned to specific Bikram Sambat calendar dates, visible as indicator dots on the calendar grid
- Reminders - one-time or recurring (daily, weekly, monthly, yearly) - that fire system notifications even when the widget is collapsed, with snooze support
- Document manager for one-click access to pinned files, folders, and executables
- ID photo tool with standard print presets (passport/MRP 35×45 mm, auto/VISA 25×30 mm, stamp 20×25 mm, US/DV Lottery Visa 51×51 mm) and print sheet tiling on A4, 4R, 3R, 5R, or custom paper
- English and Nepali (नेपाली) UI languages, switchable at runtime
- 20 color themes - 10 light and 10 dark
All data is stored as plain JSON files in %LOCALAPPDATA%. Zero telemetry, no analytics, no account required. Nothing leaves the device unless a network tool or RunBox web search is explicitly used.
Conclusion
NepDate Widget crossed 300 downloads shortly after release. It is available free from the Microsoft Store (app ID 9PG97WBJX1NQ, no UAC prompt, per-user install) and as a direct .msix download from the GitHub Releases page. Install size is under 25 MB with .NET bundled. No admin rights required. No Microsoft account needed after installation.
Windows does not know what Jestha 19, 2083 is. NepDate Widget does, and it carries the tools that make working in Nepal's calendar context less disruptive on a Windows machine.
The calendar accuracy comes from the same library that powers 28,000+ NuGet downloads of NepDate - a validated lookup table covering BS 1901 to 2199, not a computed approximation. The Preeti converter makes documents from two decades ago readable again. The RunBox removes a context switch. The image tools remove dependencies on software most users cannot justify buying. The network toolkit puts a subnet scanner next to the Nepali Patro.
- Full feature documentation: nepdatewidget.rajuprasai.com.np
- Source: github.com/RajuPrasai/NepDateWidget