Multi-Layered Calendars
julian.digital
julian.digital
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.
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!
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.
https://replit.com/@Chronological/DynamicTables#index.html
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.
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.
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!
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.
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.
[1]: https://github.com/novoid/Memacs [2]: https://arxiv.org/abs/1304.1332
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.
RFC 8984 JSCalendar: A JSON Representation of Calendar Data https://www.rfc-editor.org/rfc/rfc8984.html
Create a new event called <name>, on <date>, from <start time> to <end time>
P.S. I'm totally open to hacking out an MVP with someone if this post resonates strongly with you.
Call me cynic but in a sense I'm glad we don't have this kind of thing.
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.
Lines may blur and other experiments are continuously being tried, forgotten, rediscovered, etc.
Few seem limited to legacy constraints given modern software and protocols.
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.
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.
https://nicolasbouliane.com/projects/timeline
I love your website design, especially the mockups. How do you make those?
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.
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.
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.
Lots of opportunities for improvement in existing s/w
If other data that is being collected anyway could enrich the calendar in exactly this way, it would be amazing.
At current, using Org-Agenda does a lot to integrate my schedule, TODO list, notes, and links to other documents & media from one place.
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.
So, Notes are Tasks and Calendar Events? The author must be taking different kinds of notes than I do.
Making the point that notes are emails are tasks wasn't even necessary as an introduction to the main ideas of the article.
does anyone know of an open source calendar app with the same ui/ux ?
This is called a "diary" and is as old as humankind.
I use a calendar to track workout sessions. All in the past.
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.
Yes! The importance of an event and its duration are not connected.