Markdown To

SpecificationsnormativeSheet 09 of 18

calendar@0.1

A sequence of human-readable days and events that opens as a proper month calendar, switches to an agenda, and travels anywhere as deterministic iCalendar.

File
*.calendar.md
Views
month + agenda
Export
RFC 5545-style .ics
Codes
MDTO900–999
Read agent skill · authoring and editorial guide

§ 01

Yes: it renders like a pretty calendar

Days become a real seven-column month grid with compact event chips. The same standalone page carries a Month / Agenda switch; the alternate view is a calm chronological list for smaller screens and busy days.

Fig. 1Studio week, month viewresponsive · interactive
studio.calendar.md
---
markdownto: [email protected]
title: Studio week
timezone: America/Los_Angeles
---

# Studio week

## 2026-08-10
- Lighting review [start:: 09:00] [end:: 09:45] [location:: North studio] [notes:: Confirm the dimmer map before the client arrives.]
- Open house [start:: 18:00] [end:: 20:00] [url:: https://example.com/open-house]

## 2026-08-11
- Team offsite [all-day:: true] [location:: Mendocino]
rendered · month / agendafixed view script

Studio week

3 eventsacross 2 days · America/Los_Angelesportable calendar

2026

August

SunMonTueWedThuFriSat

When
Where

No notes yet.

Open event website

Notes are read-only in this view.

§ 02

Appointments are events, not fake tasks

Clicking an event opens an in-page detail sheet with its time, place, and notes. An external website, when present, remains a secondary action inside that sheet.

timezone:
An IANA zone, default UTC. Local clock times retain daylight-saving meaning.
## YYYY-MM-DD
A real, unique day.
[start:: HH:MM]
Timed events require start and a later end.
[all-day:: true]
An all-day event has no fake midnight clock time.
[notes:: …]
Plain-text event detail shown in the modal and exported as an iCalendar description.

§ 03

Portable without pretending to synchronize

Verb

Meaning

Source edit

export

Writes deterministic VCALENDAR with CRLF folding, stable UIDs, VALUE=DATE all-day events, and timezone-aware local values.

None. Writes .ics or prints with --stdout.

notes

Adds, replaces, or removes the selected event’s one-line notes field.

Local edit. Changes only that event’s [notes:: value] field.

§ 04

A calendar never guesses a missing time

broken.calendar.md
---
markdownto: [email protected]
---

## 2026-08-10
- [all-day:: true]
- Missing end [start:: 09:00]
- Missing start [end:: 10:00]
- Bad clock [start:: 25:00] [end:: 26:00]
- Backwards [start:: 14:00] [end:: 13:00]
- Maybe all day [all-day:: perhaps]

mdto validate

  • MDTO905 error line 6

    - [all-day:: true]

    Event has no display text.

  • MDTO906 error line 7

    - Missing end [start:: 09:00]

    Timed event is missing end.

  • MDTO906 error line 8

    - Missing start [end:: 10:00]

    Timed event is missing start.

  • MDTO907 error line 9

    - Bad clock [start:: 25:00] [end:: 26:00]

    Event time must be a real 24-hour HH:MM value.

  • MDTO908 error line 10

    - Backwards [start:: 14:00] [end:: 13:00]

    Event end 13:00 is not later than start 14:00.

  • MDTO909 error line 11

    - Maybe all day [all-day:: perhaps]

    all-day must be true or false, found perhaps.

Read calendar.md or run mdto spec calendar for the complete contract.