# Kanboombo Developers > Calendar plug-ins put dated records on the days of Kanboombo's readers: a rate, a meeting, a notice. A plug-in is a folder: a manifest (plugin.json) that says what to download and what it writes, and a fetcher (fetch.mjs) that turns those files into records, one JSON object a line. Kanboombo runs it on schedule in a locked room with no network and keeps every revision. Every page below is Markdown. The tool is one file: https://kanboombo.com/developers/plugins/kanboombo-plugin.mjs (Node 24, no dependencies). The contract is contract 1; the schema for plugin.json is https://kanboombo.com/developers/plugins/plugin.schema.json. An agent publishing a plug-in for a person follows https://kanboombo.com/developers/plugins/AGENTS.md: every step from an empty folder to the Plug-in Store, and what only the person does. The same steps are a skill, kanboombo-plugin: https://kanboombo.com/developers/plugins/skill/SKILL.md. ## Start here - [Kanboombo Developers](https://kanboombo.com/developers/index.md): Build what lands on your readers' days. Start with calendar plug-ins: dated records from sources you trust, checked, approved and kept. ## Get started - [Put what lasts on your readers' days.](https://kanboombo.com/developers/plugins.md): A plug-in is a folder: a manifest that says what to download, and a fetcher that turns those files into dated records. Kanboombo runs it with no network. - [Quickstart](https://kanboombo.com/developers/plugins/quickstart.md): Ten minutes from nothing to a plug-in that passes its checks: download the tool, start a folder, teach it your file, check it, preview your days, pack it. ## Examples - [Harbour Almanac](https://kanboombo.com/developers/plugins/examples/harbour-almanac.md): The kitchen-sink example: one plug-in that uses every part of contract 1 on an invented harbour, file by file, so you can copy the part you need. - [DOP Economy](https://kanboombo.com/developers/plugins/examples/dop-economy.md): The real one: the Banco Central de la República Dominicana's reference rate for the dollar, read from its own workbook with no dependency, every business day. ## The folder - [The manifest, plugin.json](https://kanboombo.com/developers/plugins/reference/manifest.md): plugin.json, decided in order, then every field from Kanboombo's own schema, every limit, and what changed in contract 1. Unknown keys are refused. - [The fetcher, fetch.mjs](https://kanboombo.com/developers/plugins/build/fetcher.md): fetch.mjs reads the run context and your downloaded files, prints one record a line, and stops loudly when a file is not what it knows. - [Fixtures, check and preview](https://kanboombo.com/developers/plugins/build/fixtures.md): Copies of your sources and what they must give, so check runs your plug-in as the Server will, offline. preview draws the days; probe tries real sources. ## How it works - [How a plug-in runs](https://kanboombo.com/developers/plugins/concepts/how-plugins-run.md): Each minute the Server asks which plug-ins are due, downloads what their manifests declare, runs each fetcher with no network, and writes the run whole. - [Records](https://kanboombo.com/developers/plugins/concepts/records.md): What your fetcher prints, one JSON object a line: values, events and items. Their keys and dates, every rule a run is held to, and how each change is kept. - [Dates and time zones](https://kanboombo.com/developers/plugins/concepts/dates-and-time-zones.md): Your plug-in's today is the date in its manifest's zone, and a record's date is never converted. The mistakes everyone makes once, and how to avoid them. - [How records look](https://kanboombo.com/developers/plugins/concepts/how-records-look.md): How the app draws your records on a reader's day, and the words you choose: names in their language, plain figures, a change with no colour, events first. ## Publish - [Publish your plug-in](https://kanboombo.com/developers/plugins/publish.md): From a plug-in that passes check to one in the Plug-in Store, through kanboombo://publish: by you in the portal, or by your agent with the tool. - [Review information and listing](https://kanboombo.com/developers/plugins/publish/review-requirements.md): What you give beside your code: five example days, three negative cases, each source's terms, release notes, five attestations, and the listing readers see. - [Versions and updates](https://kanboombo.com/developers/plugins/publish/updates.md): A person approves one exact version of your code, named by its digest. What the digest covers, the states of a plug-in, what an update may change, how one ends. - [Data rights and audiences](https://kanboombo.com/developers/plugins/plan/data-rights.md): Whose data it is, the name readers see beside it, its terms and whether Kanboombo may keep it; and who may read your plug-in. One holder per plug-in. - [Guidelines](https://kanboombo.com/developers/plugins/guidelines.md): The rules every plug-in in the Plug-in Store follows, in numbered sections a reviewer can cite: purpose, quality, naming, safety, privacy, data and commerce. - [Developer Agreement](https://kanboombo.com/developers/plugins/publish/agreement.md): What you agree to when your organization publishes calendar plug-ins in the Kanboombo Plug-in Store. Version 1, in plain language. ## Reference - [kanboombo-plugin.mjs](https://kanboombo.com/developers/plugins/reference/cli.md): Every command of the plug-in tool and its options, generated from the tool itself. One file for Node 24, with no dependencies and no install. - [Submission errors](https://kanboombo.com/developers/plugins/publish/submission-errors.md): Every problem a check can find, by its code: what it means and what to do. The same words the tool, the portal and the Server use, from one catalog. ## Optional - [Every page in one file](https://kanboombo.com/developers/llms-full.txt): the pages above, whole, in this order. - [kanboombo-plugin.mjs](https://kanboombo.com/developers/plugins/kanboombo-plugin.mjs): the tool, with its SHA-256 at https://kanboombo.com/developers/plugins/kanboombo-plugin.mjs.sha256. - [AGENTS.md](https://kanboombo.com/developers/plugins/AGENTS.md): the road from a plug-in folder to the Plug-in Store, for your agent; init writes the same file into every new plug-in. - [SKILL.md](https://kanboombo.com/developers/plugins/skill/SKILL.md): the same steps as a skill, kanboombo-plugin, for any agent that reads skills; zipped as kanboombo-plugin/SKILL.md at https://kanboombo.com/developers/plugins/skill/kanboombo-plugin.zip.