92 comments

[ 2.6 ms ] story [ 169 ms ] thread
I’ve been working on markwhen as a way to easily create timelines just from text.

I’ve used it personally to help plan and coordinate my own wedding (https://markwhen.com/rob/wedding) and for keeping track of life events, and I’ve seen it used for event planning, project management, and to visualize historical events or periods of time.

I personally like tools that let you immediately start using them, and I set out to do that here with markwhen.

Let me know if you have any questions!

Cool tool, thanks for sharing!
Fantastic. ISO8601 date is a must, otherwise, its delightful :)
hope your dad recovered from his hospital visit!
I like it! very pretty and useful. I really needed for something like that for commercial proposals. Nice work
This looks neat. I wish it used iso8601 [0] dates. It’s pretty convenient as the time periods uses the format YYYY-MM-DD/YYYY-MM-DD and I think is easier to mentally parse than MM/DD/YYYY-MM/DD/YYYY.

Of course I didn’t even know what a solidus (“/“) was until using iso8601.

Also, I usually find standards pretty much as overhead, but 8601 seems pretty good as a universal standard.

[0] https://en.wikipedia.org/wiki/ISO_8601

Yeah, so long form 8601 are supported

`2022-08-02T23:00:00.000Z - 2022-08-03T00:00:00.000Z: Event`

but in general I do need to figure out a way to allow more customizable date parsing.[0]

[0]https://github.com/kochrt/markwhen/issues/27

I would definitely like to use YYYY-MM or YYYY-MM-DD, ideally without any additional configuration required.
(comment deleted)
> It’s pretty convenient as the time periods uses the format YYYY-MM-DD/YYYY-MM-DD and I think is easier to mentally parse than MM/DD/YYYY-MM/DD/YYYY

Especially for those outside the USA!

As someone who grew up in the US, it's still bizarre as a programmer to have a mixed-significance ordering (MM-DD-YYYY) instead of any consistently-endian ordering (DD-MM-YYYY or YYYY-MM-DD).

Out of curiosity, in what order do Europeans verbally say full dates with month names? Or does it vary by language?

In Sweden we say 20th June, 2022 and we even use a "DD/MM -YY" shorthand when signing documents for instance, although YYYY-MM-DD is also common and "the more correct".
Except on food where EU mandates DD-MM-YY(YY).
Denmark: The Nth $month $year. E.g., “Den 20. juni 2022” (lit.: the 20th June 2022).
It does vary by language, but Roman languages (French, Spanish, Italian, etc.) say the 4th of July.

Same in German.

In Polish, it’s the same, except for official matters since 2002, which now follows ISO8601.

Even in the UK they commonly say the 5th of May, and not May, the 5th (but it does happen).

I can’t talk about other languages.

> not May, the 5th (but it does happen)

The only time I see this is in the UK is on movie posters/trailer, e.g. "In cinemas May 5th", which I assume is due to re-using the US material.

PS: 5th of May is a degenerate example, since it's 05/05 regardless of ordering

PPS: 5th of May is also my birthday ;)

European here. When I state my date of birth I state it as “7th of October 1990”.

When a date is within the current year I state it as for example “27th of June”.

If weekday matters, and specific date is still relevant I’ll say for example “Monday 27th of June”.

I might also simply say “Sunday last week”, “Monday next week”, “Monday at the end of next month”, etc.

Likewise I might say “a couple of weeks ago”, “last week”, “a few days ago”, “in under two weeks”, etc.

Depends on context.

When including a date in a file name I prefer YYYY-MM-DD for date.

When using dates in a directory hierarchy I’ll have years on the top level, with months within them and dates within those.

Sometimes I might use a format like YYYY-mm-ddTHHMMz_s in a file name. For example “something_2022-06-20T1722+0000_1655745728_more_text.tbz”

YYYY-DD-MM as a folder / filename does not sort correctly. Not a fan.

I much prefer YYYY-MM-DD for its sorting behavior.

Sorry, that was a typo. I meant to say YYYY-MM-DD. Edited now.
Important note: while a datestamp like YYYY-MM-DD does sort correctly, a datetime stamp such as YYYY-MM-DDThh-mm-ss does not because of DST and negative leap seconds.
Where in Europe? I imagine this might vary by language / region. And could even differ in official use vs vernacular.

And ofc, the mixed order is the inferior option.

These replies are fascinating. When saying a date I always say month day year. I hadn’t considered that this might be cultural.
As an American, same. I was wondering where the weird month-first came from and figured it might have been verbal first, then codified in writing.
At first I wondered if it had something to do with word order in English, but it sounds like other English speaking countries don’t follow this pattern.
Don’t currently “follow this pattern”.

US English has several grammatical and pronunciation characteristics that were common in UK English about 300 years ago. Including being largely (but not totally) rhotic.

I moved to the US from the UK a little over 10 years ago.

The numeric month and day of my birthday happen to be the same. For this anecdote lets assume it’s 01/01/1970.

When medical staff ask me for my date of birth, I’ll say “1st Jan 1970”. They’ll reply asking “Sorry, Jan 1st?” And I’ll say “yeah”. This blew my (programmer) mind.

Over the years I’ve rewired my brain to say “Jan 1st 1970” and avoid the extra round trip.

In German, Dutch I'll use "twenty June twenty-twentytwo". In English "twentieth of June twenty-twentytwo
Would you actually say "zwanzig Juni" in German? I'd expect "zwanzigster Juni", i.e. 20th June.
It varies by context: sometimes I'll say "20th June", sometimes "June 20th". There's no rhyme or reason.
There isn’t a standard. Most individuals don’t have a consistent standard, let alone languages.
Germanic (Dutch, German, Danish, Swedish, Norwegian) languages just say "10 october", they'd never say "October 10th". Before we get our 'english is so stupid!!!' hat on, in many of these (e.g. Dutch and German), the number '87' is pronounced 'seven-and-eighty' ('zevenentachtig' - 'zeven en tachtig' - seven and eighty), which is stupid. Languages are weird).

Same for the romance ones: It's just "Quatorze juillet" - 14th of July (Bastille day).

English is the weird one, but not that weird, "7th of october" is not much more complicated to say than "October 7th".

About that romance 87 …

French in France: four twenties seven

French in Switzerland: eighty seven (octante sept)

French is actually not so weird if you think about what a "score" is in English. Gettysburg address literally begins with "four score and seven years ago", which equals to 87.
In portuguese people say "vinte de junho de dois mil e vinte dois", meaning "twenty of june of two thousand twenty two". The first few days of the month are ordinal: people say "primeiro de janeiro" meaning "first of january".

Japanese uses a neat system akin to YYYY-MM-DD. 2022-06-20 becomes 2021年6月20日 meaning "2021 year 6 month 20 day". Really nice to read. Actual pronunciation is very irregular though, especially days of the month where about half of them are irregular.

> Out of curiosity, in what order do Europeans verbally say full dates with month names? Or does it vary by language?

I am from India and I say "21st of June 2022"

I really hate watching historical documentaries where they spell out dates with day->month->year. If the intention is to teach, then the year is most important number and all other information is to be catalogued in context of broadest time period. The DD-MM-YYYY forces viewers to keep the whole date in their heads before it can be parsed and understood.

The "Algorithms to Live By" book has a good name for this: computational kindness. We should strive to reduce cognitive burden. The bigger the audience, the more effort should go into making data digestible. Unfortunately the established date standard goes against it.

The other problem is mixing endianness: the date information uses little endian, while numbers themselves are spelled out in big endian. The American MM-DD-YYYY on the other hand... I don't know what they were thinking.

Interesting thing I learned about historical battles: the most important part of the date is the season. In my country there were no battles during winter, early spring and late autumn, most were from April to September. It does not mean month is more important than year.
The one difference by language is the day: some languages say 1st or 7th, some just 1 or 7. In mine, except for 1st we use the day number, full reading is "day month, year" where the comma is a small extra space.
Verbally in the same order as written in BrE - 22 June. (Historically '22nd inst. [instant]'.)

'June twenty-second' ordering verbally is as distanctly American (not to say you don't hear it, as with many Americanizms) as it is in writing.

In life I use the latter, but on computers I try to exclusively use the former. YYYY-MM-DD sorts the same lexicographically or chronologically.
Really awesome to see this evolving to this stage :)
I'm glad you're here to see it!

So cheeaun here posted his life timeline project[0] 9 years ago (!) to hacker news[1] and I always thought it was pretty neat. I made a tool to make timelines like that and it has since evolved into markwhen.

[0] https://github.com/cheeaun/life [1] https://news.ycombinator.com/item?id=6833565

Yes, very awesome what you did with it! Really promising to use as a developer. Always hated all the roadmapping tools that required to generate the roadmap in the tool itself instead of Roadmap-as-Code.
Very interesting. Why is there work inside of the education sections of the life timeline? In the project planning example, I could see it being useful to have something like $ref references from Swagger to e.g. reference a duration from a project group into the overall section.
Hat tip to a fellow follower of CGP Grey's yearly themes :)
This is awesome! I want to see other tools like this. I dream of a project management system that is text based and lives in your codebase seems we are pretty close with this. Planning (this), comments / descriptions (markdown), identity / people (??), tickets (??) Anyone know of something like this?
It doesn't exist yet but it needs to be built. Project-management-as-code. This would be the roadmap interface. Let's kill Jira.
Very cool! One suggestion, this is not Markdown, this is plain text for timelines.

Don’t be afraid to distinguish your tool from its inspirations.

(comment deleted)
Clicking and dragging doesn't seem to work for me. Firefox 102.0b8, Linux
This would enable a much appreciated Obsidian plugin, it seems a natural fit
Obsidian supports Mermaid charts. I've used that for this type of chart before, to plan a trip.
While the Gantt in Mermaid is decent, this would be far, far superior as a bidirectional plugin (i.e capable of both visualisation and editing the original markdown).

I'd happily pay for this as an Obsidian plugin.

Good job! Would like to see it as an independent file format and tools like external editor support and cli compiler (to html/pdf/svg etc.)
Seconding this. I'd love to use this tool, but ideally I want to be editing in the text editor/IDE of my choice and then to be able to own the viewer offline. This would be especially important for actual project management as employers/clients don't tend to allow you to use online tools and that's what I'd most likely be using this for.
Thirding this.

Ideally this would be an emacs package.

I'm working on an MIT-licensed time-tracking tool in my spare time and I'm hoping somebody (in a "this is not legal advice"-capacity at least) can enlighten me on licensing here:

If I am understanding the AGPL-3.0 correctly (and assuming that the format is also under the license), I could NOT add an "export to Markwhen" feature to my project without then being forced to convert it to AGPL-3.0. Is this correct?

No, nobody can copyright a file format
This, similarly you could copy(reimplement) the entire API for this software if you wish with some caveats.
In addition to what others have said, I personally would love to see people using the format, so please go ahead!

I'd be interested to see what you're working on!

If only this were a vertical timeline with a print-friendly format. Its great, but a guy can dream....
Exporting to pdf/png does a good job of getting everything into view. Otherwise the 'doc' view (the third view option button in the bottom left corner) might be your best bet, it just displays a list
How about a markdown for any hierarchical info?

And diffing to know what changed on git etc.

This is an excellent landing page that immediately draws my attention and shows why I'd want to use this. This is a great example of how a landing page can demonstrate a tool quickly.
nice! i have been using a combination of org-mode / taskjuggler to produce gantt so far. Bit this looks nice and could be use for simpler use cases.
I definitely can't use this, the date overhead is too much. I agree with the other commenter, YYYY-MM-DD is the way to go.
Agreed, the date thing is stopping me too still for now. I'm waiting for symbolic headers! Or the use of relative dates.