11 ms·
Plain Text Calendar
- MollyRealized 4y agohttp://www.43folders.com/2005/02/24/guest-mike-harris-looks-at-remind http://www.43folders.com/2005/02/24/guest-mike-harris-looks-...
- twobitshifter 4y agohttps://docs.fileformat.com/email/ics/ https://docs.fileformat.com/email/ics/ ics is already plain text.
- minsc_and_boo 4y agoAnd not really that human readable. This plain text calendar would be more powerful if it came with an ICS parser.
- dvtrn 4y agoor if I could just inject and print my own calendar events to and from the `cal` command and send that through an ical parser--item added via a plain text calendar, added to ical, and immediately updated event on my phone. It's been on my mind to just write something like this as a side project forever but... I am remarkably lazy sometimes.
- minsc_and_boo 4y agoWell that's what I was thinking of, to put this plain text calendar on an e-ink screen with RPi. A google cal or ical integration out of the box. I guess I can roll my own OAuth and parser, but then I'm not going to use this linked plain text calendar.
- stimpson_j_cat 4y ago2021-03-03 w09 ke 8-1345 +lp bash-db; (14-1545 +mp); 1530 FxBar Is that particularly readable? There's a whole section dedicated to how to read the entries and why the syntax is the way it is.
- minsc_and_boo 4y agoI'd post the last *.ics I had to parse, but it has personal info in it. From the BEGIN:VCALENDAR line all the way down to the description being littered with \n line breaks, it is not very human readable.
- twobitshifter 4y agoI actually love plain text in general, and if this meets your needs, there’s no need to overcomplicate things. The tradeoff is the greater feature set of ics comes with a necessarily more complicated format. We can see complexity creeping back in to this format as you scroll towards the bottom and tags are introduced, and there’s still a lot missing. With the way it is now, basic things we take for granted like recurring meetings are not handled. You’d need a separate program to insert/delete lines and do the date math if the format isn’t going to change, or more likely a special event type. If you add a recurring event, then you’d likely end up revisiting the one line per day idea.
- trafnar 4y agoThis is similar in spirit to my app, TaskTXT (https://www.tasktxt.com https://www.tasktxt.com). It's a plain text task manager which allows you to time your tasks, helping you avoid distraction. The timer data is stored right in the document. I made a video about how it works: https://www.youtube.com/watch?v=gbGawb728xA https://www.youtube.com/watch?v=gbGawb728xA
- blakewatson 4y agoOoh, this looks really cool. I feel like task management is something I haven't figured out how to do well yet. I might give this a tray.
- ignoreintuition 4y agoI used taskwarrior (https://taskwarrior.org/ https://taskwarrior.org/) for years and loved it but eventually stopped because of there was no way around having to manage a separate task manager on my phone. I follow GTD and it really demands that you be able to add tasks immediately so I would end up maintaining two lists. Not very effective so I went back to using Things.
- francis-io 4y agoHave you tried https://github.com/bgregos/foreground https://github.com/bgregos/foreground or https://github.com/theunraveler/taskwarrior-web https://github.com/theunraveler/taskwarrior-web
- dpcx 4y agoThis has been my only issue with using Taskwarrior. There are a few android apps (the quality of which I cannot speak to) but not having an iOS app means I end up missing lots of things. https://github.com/blampe/taskwarrior-reminders https://github.com/blampe/taskwarrior-reminders was probably the closest I got, but it had some issues with some of my tasks. I miss having a single good place to put all my tasks.
- zoom_enh4nce 4y agoHi, I signed up for a subscription for syncing and was charged but now I can't access the subscription page (which means I couldn't cancel it or update it if I wanted to do that). Also the "Contact" link is broken at the bottom of the page. I really love the app, hoping this can be resolved :)
- ydnaclementine 4y agoMaybe not what the article is exactly talking about, but `cal` will give you a calendar in terminal. `cal -3` will give you each surrounding month, and `cal 2022` will give you the full year
- tlavoie 4y agoOne of my earliest computing-adjacent exposures was going into my dad's office as a kid. Besides getting to type random things on punch-cards, we'd typically bring home these line-printer calendars with a Snoopy (or whatever) ASCII-art pic at the top.
- adamrmcd 4y agoOften I use cal to find the previous or next month. I never understood why two parameters it assumes `cal mm yyyy` but when one parameter is provided assumes `cal yyyy` instead of `cal mm`. ie, I just want to see April of this year: but `cal 4` returns Jan-Dec 0004 CE <!> `cal -3` is perfect!
- lapsis_beeftech 4y agoYour cal likely also recognizes month names, try "cal apr" for April of this year.
- mandelbrotwurst 4y agoMine does not ~ $ cal apr cal: year `apr' not in range 1..9999
- lapsis_beeftech 4y agoWhich cal? It is a relatively simple program that has seen many implementations and extensions. The cal I had in mind was the version from the util-linux package, it is commonly found in Linux distributions and supports full or abbreviated month names as arguments.
- cuhlur 4y agoI've played around with something similar (Year) (dd) (MMDD): (most important event), (next most important) Ex 2022 sa 0102: appt su 0103: party, drop off mail mo 0104: work, call jon
- prash_ant 4y agoEmacs users, you have the built-in diary which also integrates with org-agenda. It's perfect for recurring events like birthdays, bills and also provides reminder. [1] https://www.gnu.org/software/emacs/manual/html_node/emacs/Format-of-Diary-File.html https://www.gnu.org/software/emacs/manual/html_node/emacs/Fo...
- dqv 4y agoI like the idea, but it seems to have a flaw (or I missed how one should handle this). Not all events happen on the same day, especially if you work third shift. I guess you would just split it into two events (not really a fan) or just do something like 23-3, but then it kind of breaks the "one day per line" rule.
- stimpson_j_cat 4y agoCalendar apps are so complicated and tightly integrated with other productivity apps now I'm not sure the benefit of simplicity here outweighs the cost of losing that. My Google cal emails me notifications, works with desktop calendar apps, integrates with Maps, etc. It autofills addresses, adjusts for time zones, syncs across my 4000 devices, allows me to edits dates via text input or GUI/drag 'n drop, etc. (Not shilling, Apple cal is probably similar.) Even my todo list went from org mode to Google Tasks because of the integrations with Android, Google Calendar, etc.
- ttty 4y ago> My Google cal emails me notifications Until you get locked out/banned by Google.
- wolpoli 4y agoFor personal use, it would be much easier using a Calendar service that syncs with our devices and works with our services. That said, this kind of text format is useful if one needs to keep track of calendar information for a specific project (in a project folder).
- gumby 4y agoI think you have it slightly backwards (or should). There's an open standard, icalendar (https://icalendar.org/ https://icalendar.org/) which represents calendar entries. Invitations you get in the mail come this format too. The easiest way for your map, address book, reminders etc to integrate is just to talk to your calendar server. The apps need not know about each other at all. Google and microsoft of course may do some non-standard futzing around within their proprietary stacks: you can often see these problems when you try to connect to something outside their silos, though in my experience the standards integration in google calendaring is pretty good (especially when compared to their mail system). It's been a few years since I had to interface with Exchange calendaring but back then it...wasn't good. So in any case there's no reason you couldn't write a small service that spoke ical over the network and this plain text calendar's format locally. Then it would appear normally in your partner's iphone, handle your kids' schools' calendars etc. Whether it would be worth doing that is literally an exercise for the reader...but you'd get the same level of integration as you would with, say, Apple's icloud calendar services.
- jrm4 4y agoInteresting. I was expecting something similar to my daily driver, which is Remind - https://dianne.skoll.ca/projects/remind/ https://dianne.skoll.ca/projects/remind/ I think I still prefer Remind's approach for now; it keeps the ability to have a plaintext viewable thing, but Remind also appears more scriptable and exportable; e.g. I make mine both give me reminders in my Terminal, and I can also make it print out a regular "human-ready" calendar.
- aidenn0 4y agoAnd wyrd is a TUI for remind that works great, plus you can have one-way sync with e.g. caldav using rem2ics to get things to appear on your devices.
- p2hari 4y agoOh my god, thanks a lot for this. I had missed this link and was searching for past few months. Thought of doing an 'Ask HN' just to get the link.
- jrm4 4y agoRight? Doesn't even have a distinctive name to work with.
- codethief 4y agoI wish the website came with a (detailed) list of features (especially regarding interoperability) and more screenshots. A 51-minute video on YouTube doesn't really help. :|
- jrm4 4y agoYeah, it's super old? Google searching it before gave a host of good discussions and examples and doesn't much longer.
- babelfish 4y agoWould love to see an Obisidian-style Calendar UI based on a textfile like this
- lorey 4y agoI can't provide the UI, but here's my tool to generate a calendar for Obsidian: https://github.com/lorey/obsi/ https://github.com/lorey/obsi/ Preview here: https://github.com/lorey/obsi/tree/master/example/output/calendar https://github.com/lorey/obsi/tree/master/example/output/cal...
- jmclnx 4y agoThere is this also, and it compiles on many systems. http://unicorn.us.com/pub/cal40.zip http://unicorn.us.com/pub/cal40.zip Rather nice
- andrewmcwatters 4y agoSee also: POSIX cal[1], calendar(1)[2] [1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cal.html https://pubs.opengroup.org/onlinepubs/9699919799/utilities/c... [2]: `man -S 1 calendar`
- andrewmcwatters 4y agocal is sort of fun to know about, but calendar(1) is actually related, and an interesting read.
- neilv 4y agoI've adapted todo.txt format to be a worse-is-better combined calendar/appointments and task list, for personal use (not a lot of meetings scheduled, nor videoconf&chat integration). It works well enough for now. http://todotxt.org/ http://todotxt.org/ Basically, change the meaning of the date on a todo.txt item to be the soonest date that task/appointment can be done, have optional time of day (point or range), and sort the entries to an appropriate ordering (pending before completed, then by date, then by time of day). Every day, tasks you didn't do, search&replace the date to tomorrow. https://www.neilvandyke.org/todotxt/ https://www.neilvandyke.org/todotxt/
- tero 4y agoI'm using todo.txt and calendar.txt together (but as two separate files). I've chosen some conventions for calendar.txt to work smoothly with todo.txt, such as @contexts and +tags. They work nicely together. To check for all calendar events and todos for a project, I can 'grep +pw calendar.txt todo.txt'. This also shows the start and end date of the project (first and last event date) Todo.txt is a great format!
- shushcat 4y agoI'm not really one for shilling my (decidedly unprofessional) coded projects, but submit that I have put together a shell script[1] that builds an agenda using date stamps from passed text files. The script is POSIX compliant if you pass a flag, but otherwise uses Fzf to filter and jump to entries. It's basically like a less extensible, but much shorter (in terms of lines of code) version of Org Agenda. I'm currently extending it to export an ICS file, which will allow automatic import into calendar services from Google, Fastmail, Apple, or whatever. Two-way calendar sync is beyond my will for faff, but if the spirit so moves someone I wouldn't stand in the way. [1]: https://github.com/shushcat/txt-agenda https://github.com/shushcat/txt-agenda
- dynamic_sausage 4y agoFor a slightly different take on this problem (a calendar in plain text), calendar.vim plugin by itchyny provides a wrapper for Google calendar in Vim. The option of viewing your calendars and tasks on the phone or anything with Google calendar gives a very considerable advantage, IMHO.
- throwaway892238 4y agoIf you're going to make a calendar format, why not steal from existing formats? mbox format (http://qmail.org./man/man5/mbox.html http://qmail.org./man/man5/mbox.html): From LAPTOP Sat Jan 3 01:05:34 1996 Subject: CAL EVENT: Call gas company Account number: 12345678 From ANDROID Date: Tuesday, May 31st, 2020 6pm EDT Subject: CAL EVENT: Meet Chris after work for drinks at Bad Bar A format like that could be edited in a text editor, or easily loaded into a simple app with an existing parser library. A single mbox could be a calendar with each e-mail a calendar item, which is easy to search/filter by an email client. As a bonus it supports MIME encoding to attach files. You can use one date format, or several, and have a script easily re-format the date lines if you want to grep/awk it. Other existing formats (https://en.wikipedia.org/wiki/ICalendar https://en.wikipedia.org/wiki/ICalendar) have features missing here, like date/time ranges, recurrence, status, allday, reminder time/method. While you might not want them yet, you may want to convert your calendar to/from another format in the future.
- tero 4y agoThanks for the pointers to these formats. I created calendar.txt format to meet some requirements: - One line, one day - easy to use with Linux command line tools I use every day (grep, sort...) - Simplicity: no recurrence, no date time ranges (but I can of course grep for project tag "+pw" to see the first and last date for the project) - Fast to write, even on mobile - Use ISO 8601 standard dates, have standard weeks near dates
- zeveb 4y ago> Standard week starts on Monday. No thanks! IMNSHO the week starts on Sunday.
- tero 4y agoCalendar.txt uses the ISO-8601 standard, where weeks start on Monday. But you should use whatever works for you. If you want to use the US system, you can easily adapt to this. The short Go code for generating the template is on calendar.txt homepage.
- deleted 4y ago[deleted]
- westcort 4y agoI am not sure ics invites will still function universally in a decade and our our attitude toward today's phones might resemble then how we regard a PalmPilot today, but I am sure this plain text file system will continue to work. Here is another tool to free us from the data collectors and analytics merchants that continue to invade our privacy and manipulate our society. Thanks for making something useful that will still be functional in a decade.
- tero 4y agoHi westcort. What you describe is one of the drivers behind calendar.txt, even though it's not emphasized on the page. Thanks for pointing that out.
- keyle 4y agoI love the idea but this is poised to be limited only to my use. I can't get my wife and kids to do the same. Platform wins, if we're on iOS, the best calendar is the one that will sync across our events, period. Additionally this is not a great format for recurrence, which has to be done manually, reminders(nil), notifications, change tracking (without git), location information and you're obviously at the mercy of typos.
- tero 4y agoFor my use, lack synchronization with other organizations' or person's calendars is indeed a limitation with calendar.txt. Adding events manually is obviously slower than just clicking accept. Adding that feature would likely mean tradeoff for reliability, security and simplicity. Synchronizing my own calendar.txt between my own devices has worked very well for me using git and synchthing. I also find it very easy to audit correctness of synch, thanks to plain text and version control. For recurring events, I have found calendar.txt much easier for my use. Many recurring events have small number of events in any given year. Also, there are often exception or two, and some entries get more specific over time. I have found adding recurring events much faster with a text editor than any of the calendar programs I've used. As the author of calendar.txt, I'm of course biased here.
- marttt 4y agoNice. This reminds me of Daniel Lucraft's Plain Text Organizer (from 2008). Nice free-form syntax for calendar, and a clever notation for "30-day trials": https://danlucraft.com/blog/2008/04/plain-text-organizer/ https://danlucraft.com/blog/2008/04/plain-text-organizer/
- otikik 4y agoI don’t hate this, but I don’t love it either
- tero 4y agoHello, I'm the creator of Calendar.txt. I'm very happy to see this on Hacker News. I've used Calendar.txt as my calendar for over a year (and previous versions before that). Having previously marketed both digital and paper calendars, and tested the digital variety, I felt they were excessively complicated. For me, the benefits of calendar.txt have been reliability, simplicity and integration with established Linux tooling (grep, git, scripts). The downside has been lack of automatic synchronization, a tradeoff for simplicity and reliability. If you want to ask about using Calendar.txt, I'll check here during breaks from my Django intensive course.
- 2b3a51 4y agoI've decided to use your text file template the other way round: one line at the end of each day about what I did. Sort of a personal log. Thanks for nudging me into that direction. My teacher voice says: concentrate on your Django course while you can bombard the facilitator and participants with questions.
- tero 4y agoHi colleague, I'm teaching the course, so the students are asking the questions. Happy to hear that you've found a new use, journaling, for calendar.txt. I'm using it similarly myself, even though it's not mentioned on the page. For some projects, I collect billable hours from old calendar.txt entries ('grep +theproject calendar.txt'). I also use it to record some results, e.g. Cooper x meters on this date. Do you use calendar.txt for journaling and another program for calendar planning? If so, what are you using for a calendar?
- 2b3a51 4y agoWell now I wonder why I assumed that you were a participant? I've got some thinking to do about that one! I plan to rename my copy of calendar.txt to yesterday.txt. Each morning my plan is to write something about what I did yesterday with a view to extracting themes - perhaps like not making assumptions about the roles people on forums might have. I'm thinking some code words might emerge like '$ScreenTime 3'. But I'll see. Planning: I am actually a teacher in adult education so we operate on pre-determined timetables for each class. I have a document called a 'scheme of work' which I use to plan what happens each week in a given class with space for a bit of a note after each session about what actually happened. Schemes of work are 'working documents' - they change as the year unfolds. My life in general just lives on a (paper) calendar on the notice board in the kitchen. Thanks for your work.
- djhn 4y agoI really like this. Maybe it's because I'm Finnish, but it just makes a lot of sense intuitively. Some of the comments I do agree with (syncing with Apple, Google and Microsoft would be amazing) and hopefully someone is willing to extend the calendar to enable this. Heck, I might have a go myself.
- reaktivo 4y agoI’m genuinely curious to hear why do you think it’s more intuitive because you’re Finnish
- djhn 4y agoReverse engineering my intuition, perhaps it's the order of (mental) operations? Very few calendars treat week numbers as a first class citizen, and most emphasize the day of the week unnecessarily, while putting less emphasis on the information we consider important. Let me elaborate. In Finland there is a heavy reliance on week numbers. When finding a shared free time slot for a meeting you pick a week first. Especially the public sector revolves around weeks and the default user interface is the official desktop paper(!) calendar. What makes most US-based calendars confusing by default is the different Date/Time format. The Finnish written standard is DD.MM.YYYY with the week starting on Monday. Localisation doesn't necessarily help. The British mental model clashes with the Finnish tradition in highlighting the "wrong" pieces of information. In spoken Finnish 'month DD' or 'DD' if you're already looking at the same week is the natural order. The British put a lot of emphasis on the day of the week and the order/formatting is also "wrong": 'DAY DD MONTH'. In the grand mess of global localisation these are tiny details, but many smaller nations, and their citizens, get stubbornly attached to our local peculiarities.
- tero 4y agoAuthor of calendar.txt here. I found the lack of synchronization a downside of calendar.txt. Drop me a line or add a comment to calendar.txt page if you end up experimenting with synch. A tradeoff with sync to external calendars will be reduced simplicity, reliability and security. Depending on your use case, it might be worth it.
- graycat 4y agoNice to see the emphasis on the advantages of "plain text". Nearly all my important computing is just "plain text", including the 100,000 lines of typing of .NET code, that appears to run as intended, for my startup's Web site. For calendars, right, that's important data. Sooooo, I wrote some software that is correct back to Pope Gregory. E.g., can read Gone with the Wind, look up the date of the firing on Fort Sumter, and then know the day of the big BBQ! But my plain text calendar program just prints out for any given year, for each month, a traditional calendar format, e.g., January, 2022 Sun Mon Tue Wed Thu Fri Sat __ __ __ __ __ __ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 __ __ __ __ __ Right, for the movie: April, 1861 Sun Mon Tue Wed Thu Fri Sat __ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 __ __ __ __ __ __ __ __ __ __ __ Right, there is a lot more we want to do with calendars! Sooo, I wrote code in Fortran, Rexx, and Kexx (macro language for "plain text" text editor KEDIT, by far my most important computing tool) that, given one of either (a) month, day, year or (b) number of days since the start of the Gregorian calendar, will return the corresponding other. So, easy to calculate number of days between two dates, day of week, etc. Then can easily write other little programs to do a wide range of applications of manipulations of calendar data!! So, there's another theme: End users get some general purpose tools, e.g., subroutines that do the hard work, and with those tools write short programs that give them what they want, likely all in easy to work with plain text.
- farnerup 4y agoWhy not carry a tiny paper calendar in your back pocket? I do. It's great! Quick and always avaiable. I used to use remind, but now it's mostly for birthday reminders. And work appointments require logging in to Outlook anyway.
- lorey 4y agoI've been using a markdown-based calendar in Obsidian together with a regular Google Calendar, and so far, it's been working great for me. For markdown, I simply create interconnected notes for years, months, weeks, and days and note down goals, tasks, birthdays, and whatever happened that day (or needs to happen). For scheduling, I use regular Google Calendar events as you want to keep the benefits of invites and all. A preview can be seen here https://github.com/lorey/obsi/tree/master/example/output/calendar https://github.com/lorey/obsi/tree/master/example/output/cal.... I've also created a script to automatically generate all the files for me: https://github.com/lorey/obsi https://github.com/lorey/obsi
- dafi70 4y agoMy contribute ;) 2033-06-12 w23 Sun Resume on HN the 'Plain Text Calendar' post :P
- chootisk 4y agoI've been using a variation of this for at least four years now (the first line from the first git commit starts with 2018-07-29, but I'd been already using it for a while). I use a simpler syntax, such as "2022-06-01 Event description" or "2022-06-01 12-13 meeting" because I don't really care about week numbers and week days are handled separately (see screenshot). Through the years I've added more features as it became more interwoven with the rest of my (plain-text) productivity system. For example, I have reminders: 2022-06-01 2100! take out the trash. This notifies me at 21 on whatever device I'm using at the moment (computer or smartphone notification) I have a vim syntax and ftplugin files that help in visualizing important things (eg. the date and time are highlighted; inactive events (starting later) are shaded a bit) with support for easy and ergonomic moving of things (keyboard shortcuts to postpone tasks by one day, one week, etc) and also handling of recurring events (every X days/weeks/months/etc). Relevant data is integrated into dashboards (e.g. the number of remaining events/tasks for the day is shown in my desktop statusbar); each morning (or the evening before) I can get an email with the tasks for tomorrow, etc. The only thing I'm missing, since lately I have begun attending several meetings and have started timeboxing my work time as well, is the ability to see those nice boxes one sees e.g. in google calendar in day or week view. However I think that this plaintext file could be parsed and a view like that could be generated with relatively little effort. example screenshot: https://0x0.st/oBIr.png https://0x0.st/oBIr.png edited to add. I just noticed that OP's solution is one day per line. Mine is one event per line, which I find much more readable and versatile. You can change the date or time of an event and then simply `sort` the file and it's automagically in order
- tero 4y agoNice work, chootisk. I can see our systems are quite similar, with some adaptations to preferences. For me, week numbers and weekdays are what I think about, and dates (2022-06-01) is what I need for communicating with others. Your syntax highlight sounds like a nice addition.
- dymk 4y agoSometimes less and simpler is… just less. Can’t see this being useful for anything I actually use a calendar app for. Recurring events, inviting others, alerts.
- padmi 4y ago2021-02-21 w07 Sun 10 ski with N Why not use day-of-week number to make lines sortable? 2021-02-21 w07-7 Sun 10 ski with N But, in my country, Sunday is first day of week, so 2021-02-21 w08-0 Sun 10 ski with N
- tpoacher 4y agoI'm surprised nobody here has mentioned the "when" utility yet, available on most linux repositories. Package: when Version: 1.1.38-2 Priority: optional Section: universe/utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Salvatore Bonaccorso <carnil@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 156 kB Depends: perl:any Recommends: m4 Homepage: http://www.lightandmatter.com/when/when.html Download-Size: 49.7 kB APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages Description: tiny personal calendar Minimalistic personal calendar. It runs from the command line, and it uses a plain text file format, which you can edit using your favorite editor.