4 min read

Monorail Calendar

A screenshot showing a relatively minimalist weekly calendar, with tagged entries under each Monday's date

One of my goals with Monorail was to spend some time building small tools that helped me think and work more effectively, and then make them available to you all.

Monorail Calendar is the first one of these that's ready to share, at least as an early iteration.

"Another calendar?" I can practically hear you asking. "Is that really necessary?"

Why would you do that?

I know, maybe it sounds ridiculous. But here's what I was looking for:

  • A way to plan for approximate weekly capacity without scheduling specific blocks on specific days
  • Something that felt manageable at the scale of 6 months to a year, letting me look at the big picture without getting lost and distracted by all the details
  • Something that could add up how many hours I had blocked off in total for the week, so I could see if I had room to add stuff or if I was over booked
  • Something that could track time spent and compare it to my estimates or goals
  • Something prettier and easier to use than a spreadsheet

Really, I wanted a weekly planner that could do math. Something that could help me answer questions like, "Can I sign up for a project that's going to take about 5 hours a week in July, given other work and vacation plans?"

I also didn't want a really fiddly UI. I wanted something simple.

Text as interface

Before I started writing any code, I thought I'd work through what I really wanted by just writing it down in a text file. It started with something like this:

# 2025

## Jun 09

- #family day off [8 hrs]
- #client1:projectA draft proposal [1 hr]
- #client2 meetings [1 hr]

## Jun 16

- #client2:web implement latest designs [2 hrs]

This felt reasonably compact and natural, so I built a little viewer for it, and wrote a little code to total up the hours for the week.

A web view of the above data, but with total hours for the week next to the date, and a blue stripe on the left of the current week

Then I added a built in editor. If you click that "edit" link next to Calendar at the top, it'll pop open a little panel for editing the text.

Similar to the above screenshot, but with a white panel on the right side containing the original text input

As you type in the editor, it'll automatically update the view on the left. Then, when you're done, you can click the little "x" in the corner of the editor and it'll disappear.

Time tracking

So far, this should be useful for getting a view of the weeks to come, and to get a sense of which weeks are too busy and what needs to be reshuffled.

You can also add actual times for tasks, though, and it'll do more math for you.

Let's say I'm now doing the client work in my example. I'll add some entries for some work and meetings.

Editor pane now has entries for Monday and Tuesday for the week of June 9th

I think the syntax here is relatively straightforward: you have the day label, then then lines below it that have the start and end time, optional tags, and optional description.

### Mon

10 - 10:30 #client1:projectA proposal work
1p - 1:12p #client1:projectA email

If you've started a block but haven't finished yet, you can use ? for the end time, and it'll just leave it out of the math until you fill it in.

For any tags that have tracked time, it'll show a little summary at the bottom of the week showing how many hours you've logged for each tag.

The example I gave here is great for freelancers, but it doesn't have to be work related at all. If you'd like to spend a certain amount of time reading or writing or meditating or gardening, those are all perfect to track at a weekly cadence, and you can use the time tracking to see how you're doing relative to your goals.

Try it out!

If you're a paying subscriber, you can try it out for yourself at cal.monorail.tech. (And if you're not yet, you can sign up at monorail.tech/join)

It will start with some sample entries, so you have an example of the input format, include the week estimates, time tracking, and any free form notes for the week.

An important note: Right now, this only stores the data locally in your browser. That means if you log into it on a different device, you won't see your data. If there's enough interest in proper data saving and synchronization, I'll work on adding it.

However, it's 100% driven by the text in that edit panel, so if you want to copy that from one device and onto another, that will work just fine. Similarly, you can paste it into a text file on your computer or somewhere else if you'd like to back it up.

Bonus: the Monorail apps page

Now that there are two whole apps, I put together a little launcher. It lives at apps.monorail.tech

A screenshot of a website with two little labeled app icons: mmx1 and Calendar

Let me know what you think! I'd love to hear from you.