Calendar.txt<br>Calendar.txt<br>Keep your calendar in a plain text file.<br>Calendar.txt is versionable, supports all operating systems and easily syncs with Android mobile phone.
Download calendar.txt template<br>How do I use calendar.txt? Open<br>calendar.txt in any text editor and start filling in your events.<br>Example Calendar.txt<br>I've used calendar.txt for a while, and now I want to share it. Your new calendar in plain text:<br>2021-02-15 w07 Architecture week<br>2021-02-15 w07 Mon 9-12 project groups. 17 jogging.<br>2021-02-16 w07 Tue 9-11 John 12-16 architecture meeting<br>2021-02-17 w07 Wed 8-14 +lp. 14:15-16 +mp<br>2021-02-18 w07 Thu write out architecture<br>2021-02-19 w07 Fri 12-13 board<br>2021-02-20 w07 Sat<br>2021-02-21 w07 Sun 10 ski with N<br>2021-04 Grand rollout<br>2022 The year of foobar<br>So it's<br>YYYY-MM-DD wWW Aaa HH event. HH-HH another event.<br>Benefits of plain text calendar<br>Simple . Your meetings and schedules are valuable. With calendar.txt, you know you what you wrote.<br>You don't need to let "smart" calendar programs mangle your timezones.<br>Use your favourite editor . You can edit plain text with nano, vim, emacs, micro, gedit, mousepad, notepad, joe...<br>Future proof . You can open a text file in 2039.<br>Versionable . It's plain text, you can keep it in git. You can easily take diff, as it's one day one line.<br>Unix philosophy . It's one day, one line. You can grep (only show lines).<br>Sortable . When sorted in alphabethical order, the dates start from older and advance to future.<br>Optional weekly goals are sorted at the start of each week.<br>Mobile friendly . For Android, you can synchronize your calendar.txt with Syncthing. For desktops<br>and laptops, you can also use git.<br>What week is that? No more mixups between dates (2021-02-14) and week numbers (w06). In calendar.txt,<br>week numbers are on the same line, ready for copying.<br>Future is yours . For tomorrow, you want to know the hours. For the next year, you can plan the months.<br>For five years, you can plan the years.<br>Tips and Tricks<br>Calendar.txt supports Unix philosophy on any platform. One line, one thing (day or goals).<br>Show all instances of Linux Basics course. The course is called "Linux perusteet" and the tag is +lp<br>$ grep +lp calendar.txt<br>2021-01-27 w04 ke 8-1345 +lp cli-sudo-apt; 14:15-1545 +mp groups and themes<br>2021-02-03 w05 ke 8-1345 +lp apache; 1415-1545 +mp<br>2021-02-10 w06 ke 8-1345 +lp vps+dns; 14-1545 +mp my groups<br>2021-02-17 w07 ke 8-1345 +lp flask; 1415-1545 +mp my groups<br>2021-03-03 w09 ke 8-1345 +lp bash-db; (14-1545 +mp); 1530 FxBar<br>2021-03-10 w10 ke 8-1345 +lp recap; (14-1545 +mp)<br>2021-03-17 w11 ke 8-1345 +lp final lab; (14-1545 +mp)<br>Only show March 2021 events for the course<br>$ grep +lp calendar.txt|grep 2021-03<br>2021-03-03 w09 ke 8-1345 +lp bash-db; (14-1545 +mp); 1530 FxBar<br>2021-03-10 w10 ke 8-1345 +lp recap; (14-1545 +mp)<br>2021-03-17 w11 ke 8-1345 +lp final lab; (14-1545 +mp)<br>Show both todos and calendar events for this course<br>$ grep +lp calendar.txt todo.txt<br>2021-03-17 w11 ke 8-1345 +lp final lab; (14-1545 +mp)<br>...<br>@N add article on Flask to +lp reading list<br>I'm physically going to work tomorrow. Do I have any tasks or events? Let's search by @W (at work) context<br>$ grep @W calendar.txt todo.txt<br>Download ready made calendar<br>Download calendar.txt template. It has ready made calendar events<br>until 2033. Feel free to copy just the part you need, such as half a year.<br>Rules<br>One thing per lineOne day per line<br>Optional goals for week, month and year are single line
Line contains (2021-02-14 w06 Sun 8-12 some event. 13 other event)ISO-8601 date (2021-02-14)<br>ISO-8601 week number (w06). Standard week starts on Monday.<br>Weekday abbreviation (Sun)<br>Date separator, two spaces (" ")<br>Daily events in earliest first order
Daily eventStart time in 24 hour clock, (08:15)Optionally, can be abreviated to just hour (8)<br>Optionally, hour-minute separator colon ":" can be left out (0815)
Optional dash and ending time (-12:00)Optionally, cab be abreviated to just hour (12)<br>Optionally, hour-minute separator colon ":" can be left out (1200)
Text of the event ("Mike")Optionally, can use plus tags ("+pt" for penetration testing course)
Daily event ends with full stop "."Optionally, full stop after last event of the day can be left out.
Optional weekly goalsWeekly goals appear before dates of that weekSyntax makes weekly goals sort alphabetically before days
Just like day lines, except without weekday abbreviation ("2021-02-15 w07 Architecture week")ISO-8601 date (2021-02-14)<br>ISO-8601 week number (w06)<br>Date separator, two spaces (" ")<br>Weekly goals
Airport time: all times are local to the place of the event, unless timezone is markedE.g. local time: "12:00 Tero, Helsinki Cafe" is Helsinki time, "10:00 Westminster U cafe" is London time.<br>E.g. with timezone: 0600Z Call ABC123
File formatEncoding should be UTF-8<br>File name is "calendar.txt"
Optional monthly goalsLine starts with year and month in ISO-8601 format YYYY-MM ("2021-04")<br>Date separator, two spaces (" ")<br>Goals as text
Optional yearly...