I highly resonate with this. In fact, I spent over a year buildng it [1].
My thesis is that the calendar will play a significant role in the next OS UI paradigm, replacing the old grid of icons and overlapping windows. Everything will happen around a unified timeline, through which you will launch an app by time-blocking its use, check notifications by looking at the past, forecast battery life or weather by looking at the future, undo/redo actions (or view snapshots/backups) by time traveling, etc.
It is shocking how far behind our map of time (e.g., Google Calendar) is compared to our map of space (e.g., Google Maps). Every spatial feature has an obvious temporal equivalent that just isn't implemented. I want to be able to search, save, and review events. I want to schedule an itinerary of events. I want turn-by-turn navigation in time.
Of course, solving time is just the beginning. The real magic happens when you combine space and time. For this, we may need to wait for more AR/VR adoption, whose added dimension should make this realization obvious to most and significantly facilitate its implementation.
Your mention of combining space and time compels me to share my thoughts about time and space, I am experimenting with a programming technique that models state directly as its primary interface (whereas most programming languages model instructions). Time is inferred by movements between states or interactions with state.
I want "turn by turn" navigation of state and time as an implication of that.
It's incomplete but here is a point and click programming environment with some numbers and some parsed JSON into a grid. You can move data around between cells and the instructions are logged and the state is captured on each instruction. You "move through" state space. Try moving a value from the top to the bottom or vice versa.
Time travelling is implemented by clicking on instructions (the list items under Program instructions when you have done an action) The goal is to to infer the instructions needed to do the movement, be it pop off the stack or access some inner field in JSON or call a function. It's inspired by spreadsheets and the insight that most programming is logistics.
When you say "spent," does that mean it's in the past and you're not building it anymore? Or are you still actively developing it?
I love the idea behind it and would be very interested in using such a service, even if it might require some reimagining from traditional calendar format to make it fun and intuitive to use!
I can't even find a calendar that lets me enter where I'm leaving from to get to an event and where I'm heading after it to add the travel time automatically, with a specified margin of error.
Much less can I export the details of my activity from my smart watch or my web browsing history so I can easily review my day and figure out what happened and why.
Calendars suck at being calendars. We're not even close to ready to have them be repositories.
What I wouldn't give to be able to export logs from everything I use that keeps logs and map them to a calendar...as long as I have control of the data.
It doesn't do what I said, though. Try it. It doesn't let me specify anything about the return trip. It also doesn't support adding it for recurring events, even if I always expect to leave from the same place.
It's also extremely glitchy, so I wouldn't even be generous enough to call it "supports" even for the features it does try to have.
So something like rescuetime that exports data from your active programs to a calendar/event timeline visualization a la the spotify example from the article?
I'm thinking of some sort of standard history export format that can be overlaid onto a calendar. The Spotify history bar mockup would be one example. My browser history could be another one. So could the various data tracked by my smartwatch.
It would transform the calendar from something that is only used for planning the future to something that helps us recall the past.
We know this data is out there. Shoot, companies use it to build marketing profiles of us all the time. It would just be cool to be able to build such a profile about ourselves so we could review our decisions and evaluate our choices.
I feel like the quantified life folks would be all over this!
This idea of getting historical data fused from multiple private sources, to be able to remember properly what happened, was at the core of Memacs[1], an Emacs (org-mode-based) data-fusion framework feeding into calendar.
Here's a diagram from the Memacs repo:
emails -> memacs-maildir.py \
firefox history -> memacs-firefox.py |
SMS -> memacs-sms.py |
RSS-feeds -> memacs_rss.py |
bank statements -> memacs-easybank.py |> Memacs
postings -> memacs-slrn.org |
git repository logs -> memacs_git.py |
svn repository logs -> memacs_svn.py /
|_________________| |_________________| |______|
your personal data Memacs modules Org mode
This relied on org-mode having a good date-links-to-calendar and agenda system.
See the whitepaper, called "What really happened on September 15th 2008? Getting The Most from Your Personal Information with Memacs"[2].
This project is now a little bit dead, but the concept of private data fusion was fantastic, and transformed my view of calendars.
Agree that calendars are a little underused in that way, and would love to see more work towards that private calendar data usage.
I just wish more companies communicated using iCalendar. In work calendar events are ubiquitous but I have found it really valuable to use them to organise my personal life as well. The problem is that it can be quite tedious to enter everything by hand. I wish cinemas, theatres, restaurants, hotels, airlines, train companies, etc etc, all sent you calendar appointments when you booked with them online. In my experience only a minority do and even the ones that do often don't do it right (eg, British Airways gets the timezone wrong).
I also sometimes wonder if we couldn't create a better calendar event format using JSON or something, but iCalendar is powerful enough for 99% of use cases - I just wish it was used more.
Time and space are constants of everyone's life. You're always somewhere at some time. I've been dreaming of a centralized time & space view layer for years. Something that ingests all this data we have at our fingertips. This article gets really close to what I've imagined. Add in a map and you're able to correlate all sorts of behavior in order to understand yourself and the human condition so much better.
P.S. I'm totally open to hacking out an MVP with someone if this post resonates strongly with you.
While reading this I was thinking about how it would integrate with the OS calendar implementations, I my primary thought was to have it connect use the description field as a text document with all the additional metadata about each event. Possibly as YAML, JSON, or some custom human readable format
I've had similar ideas and have tried little scripts that do this. It's a start but I think the crucial issue is the format and ui of calendar apps. It doesn't feel durable or easily searchable. And they've been seemingly stagnant for years.
A wet dream for the ubiquitous data collecting ad industry. Obviously such a service would live in the cloud and it would be "free" and that much personal data about everybody would be too good to pass as an opportunity. Forget FB or Google harvesting whatever little data they can pick up about you indirectly. This would be the holy grail.
Call me cynic but in a sense I'm glad we don't have this kind of thing.
Time management, project management, chat, calendars, email, operating systems themselves, all this shit we evolved into because we started with 8.3 char file limits, booting from floppy disks, other long forgotten hardware based concessions, and a host of other cruft we still haven't thrown off.
Our interfaces are not based on first principles of reality or organized thinking, they're all just hodgepodge artifacts evolved from tty interfaces and limited input options that were supersceded by lowest common denominator GUIs and every hostile app trying to lock in user data.
Only now are we starting to see a few "platform apps" start to converge towards slightly better taxonomies around calendars and tasks, the amount of context switching is still miserable overall.
This gets at one of the truly good ideas in Outlook - everything is an object you can embed or link in everything else. You can put a task in an email, then put that email in a calendar event, then link to that calendar event in another task.
Of course, it's a very underdeveloped idea - more of a neat trick than a first-class feature - but it does make it easy to put everything related to a project in one spot. An app that tracked all these linkages for you would be fantastic.
The past section resonated with me. I spent some time building a personal timeline during COVID. Parts of the interface are exactly like you designed them, but the screenshots are outdated.
This project is partly abandoned mainly because it’s impossible to get the data out of various silos. I only get geolocation and photos now, and even that relies on very specific software that is nontrivial to set up. It’s just not elegant.
Todos are already stored as calendar components and share a lot of properties in common (eg: they’re icalendar components). It’s just that most user interfaces either handle one or the other.
Everything in this field has stagnated strongly for the last decade or so. 99% of the people use the 2 or 3 existing proprietary interfaces that are around, but these are impossible to improve since they’re someone else’s secret code.
This is a stark reminder that our personal devices are still very dumb. The article points out multiple times that all this data is readily available and it's still not combined in a way that enriches or simplifies our lives.
Reminds me of this GNOME-adjacent project (forgot the name) at the start of gnome 3 where every activity, every open file, every played music, ever visited website, location data, etc. was to be stored and you then were supposed to be able to search for files through a timeline of activities and how long you worked on a file or what music played during, instead of its name. But more importantly, the desktop environment was supposed to suggest activities based on learned behaviors. Visit Uni on Thursday -> already open my Algorithms-notes. Such a marvelous idea.
And yet we're stuck with systems that barely anticipate our needs, if even.
Digital calendars are a real pain if you want to look up any event that’s more than a few months away. They don’t show the importance of events — everything is just a box. In year view they don’t show much at all.
I built a personal timeline[0] because I really wanted to be able to look at life at various scales: from right now to my whole life, my parents’ and grandparents’ lives, and beyond. I wanted to be able to zoom and pan easily, not just have the default day/week/month views. Initially it wasn’t planned as an actual calendar, but the more I use it the more I want my calendar to work this way also.
I’ve had a lot of these thoughts when working on markwhen. It’s basically turning into a calendar and planning IDE, pretty excited about where it’s heading.
This is articulated perfectly. I manually add unplanned events to my calendar after they have happened, like dinners, cinema, other things that I consider 'memorable', so that my calendar has more detailed texture to it.
If other data that is being collected anyway could enrich the calendar in exactly this way, it would be amazing.
I'm building a time block calendar app for some of the reasons mentioned in this article. Retrospective is the first big feature I would like to add so users can see what they have been doing on specific days in order to understand what types of interruptions they face.
Nice article. Indeed many tools used in parallel could be merged into mostly one.
After many todo lists, calendars, ... apps I personally came to the conclusion the better way to visually display tasks and events is a timeline. And in a Gantt diagram, to be more accurate.
So I am using excel and this video tutorial [0] and made different timelines for different projects and even a calendar-like events view with emojis appearing when the date is right. So far I like it.
I like this. Tempted to build it. The lack of travel time support in GCal also bothers me. It already knows where I am and where I'm going, it should be able to block that off. And the time zone support is weak too. Planning a vacation in another country? Good luck understanding what time anything is at without manually switching timezones in the settings over and over.
I second the idea of revisiting the calendar. I add events in the calendar of what I’ve been doing every time I context switch. It makes it purposefully annoying to context switch often, and I revisit what I did that week at the end of it. Additionally, I’m able to answer questions such as “What percentage of time do I spend on research vs writing vs coding etc.
I've been using google calendar for the same thing, it make it easy to start dragging to log what task I've been doing, the fact that you can show multiple calendar and easily toggle between them helps with this theoretical plan vs what actually happened. there's also a script/webapp on github that help you sum the total time spent per timeunit per task or calendar.
does anyone know of an open source calendar app with the same ui/ux ?
> Something I never really noticed before is that we only use our calendars to look forward in time, never to reflect on things that happened in the past.
This is called a "diary" and is as old as humankind.
I use a calendar to track workout sessions. All in the past.
There's a ton of innovation left to do in this space. But I wonder it'll be done in siloed-off ways, ultimately leading to no adoption beyond a tiny niche.
This echoes how my calendars are organised (and thoughts I had on calendars for the bits that cannot be implemented, Fantastical gets close... yet so far)
Expanding on these "key moments", sometimes I wish I could create such durationless events (i.e a single datetime), but for these to show up properly I have to set a certain duration so that the label is readable at every sensible zoom level.
In addition some time blocks I create represent not a block of a specific duration but a bracket where a specific durationless event will happen, e.g a delivery that was communicated by the delivery company as happening between 08:00 and 10:00.
Regarding the past, I liberally edit to create a record of what really happened: there are recurring events for specific tasks or meetings, and if they happen earlier, later, shorter, or longer than was set I edit the event to reflect reality. This allows me to look back at e.g the past week and adjust expectations for the coming week accordingly instead of trying to bend reality to an idealised version that cannot happen and then wondering why things seem hectic when they appear so regular (e.g why do I feel like I'm always running late vs that block should really be 20 min instead of 10 min). I also love the music playing and health/fitness tracking integrations, similarly Fantastical puts in 10 day weather forecasts, I do wish it would turn into hourly when possible + having history of weather (think about the defunct Dark Sky UI).
Then there's future turning into present, and present turning into past: I also wish that integration with other bits of software would work better: an AFK block in my work calendar should change my Slack status and phone Focus mode (iOS), and me manually changing these should also automatically be recorded in my calendar.
The above is mostly about me (scheduling, recording), which can be dispatched across many calendars one can create, but calendars serve another purpose, communication: from third parties e.g flights, trains, hotels booked; and to third parties e.g I am available, we'll be meeting, I am focusing, I am AFK but can still efficiently respond over Slack, I am not available at all, I am off for a day, I am off for half a day. The latter is stupidly interesting because the only ways to say that is either a full day event that a human has to parse or a solid block of time (and don't get me started on timeless (non-day events) that span multiple days, for which the UI is fantastically poor for every single implementation out there).
Trouble starts because for each calendar account implementation out there there is only one main calendar that is considered "yours" and from which free/busy time is inferred.
Trouble doubles down when "this main calendar" is actually these main calendars, a simple example being personal account and work account. I want to be able to tell my SO that I am not available during this specific block because I have an important work meeting, and I want to tell my coworkers that I am not available during this specific block because I have something personal to attend to, without having to manually duplicate the events.
I said duplicate but sometimes it's triplicate or quadruplicate because to work around things like that some teams implement shared calendars, and you have to fill those in as well, on top of changing Slack status and focus mode. (BTW props to Fantastical for thinking about making such duplicates appear as a single merged event with a hatched border or something)
> I said duplicate but sometimes it's triplicate or
quadruplicate because to work around things like
that some teams implement shared calendars,
and you have to fill those in as well, on top of
changing Slack status and focus mode.
Google Calendar supports an out of office event type and still my company insists on having a shared out of office calendar. It's yet another thing I have to sync up with and it confounds attempts at building integrations. All so some manager somewhere can see who is on vacation at a glance.
> I wish I could create such durationless events (i.e a single datetime), but for these to show up properly I have to set a certain duration so that the label is readable at every sensible zoom level.
Yes! The importance of an event and its duration are not connected.
My thesis is that the calendar will play a significant role in the next OS UI paradigm, replacing the old grid of icons and overlapping windows. Everything will happen around a unified timeline, through which you will launch an app by time-blocking its use, check notifications by looking at the past, forecast battery life or weather by looking at the future, undo/redo actions (or view snapshots/backups) by time traveling, etc.
It is shocking how far behind our map of time (e.g., Google Calendar) is compared to our map of space (e.g., Google Maps). Every spatial feature has an obvious temporal equivalent that just isn't implemented. I want to be able to search, save, and review events. I want to schedule an itinerary of events. I want turn-by-turn navigation in time.
Of course, solving time is just the beginning. The real magic happens when you combine space and time. For this, we may need to wait for more AR/VR adoption, whose added dimension should make this realization obvious to most and significantly facilitate its implementation.
[1] https://chronomize.com/