explaingit

duguyue100/planning.nvim

Analysis updated 2026-05-18

2LuaAudience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A lightweight, dependency free Neovim plugin that adds a floating month calendar for jotting quick tasks with New, In Progress, or Done status.

Mindmap

mindmap
  root((planning.nvim))
    What it does
      Floating month calendar
      Single day or range entries
      Autosaves to local JSON
    Tech stack
      Lua plugin
      Neovim 0.9 plus
    Use cases
      Quick daily notes
      Multi day project tracking
      Status cycling New to Done
    Audience
      Neovim users
      Developers
    Setup
      Install via lazy.nvim
      Run Planning command
      Customize data file path

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Jot quick daily to-dos or project notes without leaving Neovim.

USE CASE 2

Track multi-day tasks or projects using date range entries with a status you can cycle through.

USE CASE 3

Keep a lightweight local planning calendar stored as plain JSON, with no external services or dependencies.

USE CASE 4

Customize the calendar's data file location and highlight colors to match your setup.

What is it built with?

LuaNeovim

How does it compare?

duguyue100/planning.nvimagalaxie/battlegroundtargets-coarajatcing/resolve-audio-denoiser
Stars222
LanguageLuaLuaLua
Setup difficultyeasyeasymoderate
Complexity1/51/53/5
Audiencedevelopergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires Neovim 0.9 or newer, no other plugins are needed to run it.

MIT licensed: you can use, modify, and share the code freely, including commercially, as long as you keep the copyright notice.

In plain English

planning.nvim is a small, dependency free planning calendar built as a plugin for the text editor Neovim. It opens a floating month grid inside your editor that you can move around using the familiar h, j, k, l movement keys, letting you jump between days and add short notes to each one. Each note has a status of New, In Progress, or Done, and can either sit on a single day or span a range of days, such as a project that runs from one date to another. Everything you add is saved automatically to a local JSON file every time you make a change. To use it you need Neovim version 0.9 or newer, and no other plugins are required, though the plugin will style its text prompts nicely if you already use certain input styling plugins. It installs like any other Neovim plugin, for example through the lazy.nvim plugin manager, or by cloning the repository yourself. Once installed, running the command Planning opens the calendar centered on the current month with today's date already focused. Inside the calendar, dedicated keys let you move between days, jump to the next or previous month, jump to a specific month, open a day to see its details, add a new entry, or close the calendar. Opening a day shows its entries in a detail view, where you can add, edit, delete, or reorder entries, and cycle an entry's status from New to In Progress to Done. When adding an entry, you are asked for the entry's text and, optionally, a date range, which can be written in a few different short formats and even span across months. The plugin lets you customize where its data file is saved, and lets you override the colors used to highlight today's date and the currently focused cell in the calendar. Data is stored as plain JSON with entries organized by single days and by date ranges, and any existing files from an older, simpler storage format are automatically converted the first time they are loaded. The project is released under the MIT license.

Copy-paste prompts

Prompt 1
Help me install planning.nvim using lazy.nvim and set a custom data file location.
Prompt 2
Explain the buffer-local keybindings for navigating the month grid and day detail view in planning.nvim.
Prompt 3
Show me how to add an entry that spans a date range like July 14 to July 20 in planning.nvim.
Prompt 4
Walk me through the JSON data format planning.nvim uses to store days and ranges.

Frequently asked questions

What is planning.nvim?

A lightweight, dependency free Neovim plugin that adds a floating month calendar for jotting quick tasks with New, In Progress, or Done status.

What language is planning.nvim written in?

Mainly Lua. The stack also includes Lua, Neovim.

What license does planning.nvim use?

MIT licensed: you can use, modify, and share the code freely, including commercially, as long as you keep the copyright notice.

How hard is planning.nvim to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is planning.nvim for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.