There are two important ways that Tana treats date information. Date objects are a concept of time that you can link to, meanwhile a calendar node is a place in the graph you can write on that is related to a date. The two are intertwined but not the same.
Date objects can be mentioned on any node using @-mention. They have flexible date granularities so you can be as broad or specific as you want to be, allowing you to say "meet Henry at 2:15pm tomorrow", as well as "yearly goal for 2024".
Calendar nodes are what drive your daily page. They are automatically set up for days, weeks, months, and years, and allow you to take notes and set up searches that capture items in those date intervals.
Dates in Tana keep everything connected to time in your graph. To reference date objects in Tana, use @ and write out the date/time you want in natural language. Try typing @today in Tana, and you'll see it bring up today's date.
Tana has a date field type so you can add date information to any node. You can use just the field under a node, or add them via supertag templates.
Date objects allow for different date granularities. Try typing @November, @Wednesday last week, or @5pm next Saturday. Once you have a date object, you can click it to bring up the date picker.
A negative year is parsed as BC/BCE. To know what it is in astronomical years, add one. Example: input "-101" = "101 BC" = "-100" in astronomical years
Calendar nodes are the day/week/month/year nodes on the root of a workspace. They're automatically generated for your private workspace, and can be generated for other workspaces too. They are connected to the dates they represent, so you can take notes connected to that date granularity, and it also retrieves references based on that.
The Today page is a calendar node. They exist within week nodes, that exists within year nodes. You can see all the calendar nodes in Tana by going to your Home page and expanding the Calendar.
The supertag on a calendar node can be customized. Create your own time-based templates for things like reviews, reminders, and logs. You don't need a supertag on your calendar nodes (they function just as well without them) but they're handy for making daily/weekly/monthly/yearly templates. Use the command "create default day/week/month/year tag" on the calendar node to create them.
Tana has Month nodes. Months do not appear as nodes under the Calendar node like Week/Day do, so you must navigate to months via the Today page, or from a date object with month granularity.
Use search nodes with field values PARENT/GRANDPARENT on any calendar node. This allows you to retrieve all nodes within a time span ie. a PARENT search on month will find all nodes with a specific date within that month
Via date picker: Click on the date object to bring up the date picker and click on a date to change it. For larger granularity, clear the selected date options by pressing the (x) in the corners. For smaller granularity select/input the finer granularity you want.
Change granularity: Arrow keys + Spacebar to add/change/remove granularities. Hit Enter/Esc to commit the changes.
Week granularity: Select a week as a date by clicking on the weeks to the left.
Using keyboard shortcuts on a selected date object: When a date object is selected, you can use these shortcuts to quickly change date and time:
Go forward in time = key, Go back in time = Shift+key
Keys
5 minutes: J
1 hour: H
1 day: D
1 week: W
1 month: M
1 quarter: Q
1 year: Y
Increment by one granularity: +/- keys.
Using command line on a selected date object: Run command line (Cmd/Ctrl+K) > Change date.
From a date object: If the date object references a higher level date granularity like Week 45, or November 2023, you can Alt+click to navigate to that corresponding calendar node
From a day node: The breadcrumbs at the top of calendar nodes show the different granularities. You can click to navigate to them. ✨NEW You can also right-click the Today button under the title to navigate to this week/month/year.
Unlike your private workspace, new workspaces do not come with default calendar nodes.
To create them, go to any existing calendar node like any one in you private workspace, then change workspace to a different one.
To add default tags, use the "create default day/week/month/year tag" command action. This can be accessed via the node options button to the right of the calendar node, or by running the command on the title of the node.
At the bottom of each node is a reference section. For calendar nodes, it will collect all nodes in the workspace that mention that particular date granularity, either mentioned in name or in a field. Example: week nodes will capture any node that have date objects using the Week WW granularity, month nodes will capture November YYYY granularity and so on.
There are many search operators that are specifically designed to handle date queries, as well as general purpose numeric ones that work with date queries as well.
LT/GT is the only field operator in this list. Find nodes with date that are Less Than/Greater Than a particular date. Less = earlier, greater = later.
To use LT/GT, insert a date field and the value to compare to. Example: To find all appointments you've had up until a certain date, you can build a search like this:
>LT: >Appt date: [Date object]
If the value you access through PARENT or PARENT.field is a date value, you can increment/decrement it using +/-. For example, to find all the tasks due during the next three days on a daily node, write a search like this:
The search operator OVERDUE only works when used in tandem with system field Due date.
We discourage using Due date because system fields in general are very inflexible. They cannot be configured and customized like other user-created fields with default hide state, default value, auto-initialization and so on.
We can now replicate the functionality of OVERDUE for any date field using LT/GT.
PARENT/GRANDPARENT refers to the immediate ancestors in the outline hierarchy relative to the search node.
If the parent/grandparent is a calendar node, you can add these search operators as a date field value. This will replace the field value with the date represented by the calendar node.
Example: If you create search nodes on your day node, you can use PARENT/GRANDPARENT to fetch all #tasks that are due today (PARENT), or this week (GRANDPARENT)
You can use PARENT+3/PARENT-3 to find future/past dates relative to the target. See LT/GT for more.
If a node has a date field, you can use PARENT.field to target that field value for date searches. See LT/GT for more.
Add this in the date field value, and it will be replaced with a date that is relative to the current date.
Compare PARENT/GRANDPARENT with FOR RELATIVE DATE, the former let's you look back at what you wrote yesterday relative to the calendar node you're on, whereas the latter shows results relative to today's values (which will change every day), and can be placed anywhere in the graph (not just nested as a child/grandchild of a calendar node).
Present time: Today, this week, this month, this year
Past: Yesterday, last week, last month, last year
Future: Tomorrow, next week, next month, next year
Date fields used in supertags can be made to auto-populate a date upon use. Use a date field in the supertag config, and the following auto-initialize options will be available:
to current date: inserts today's date
to date of ancestor day node: inserts the date of an ancestor journal node
to value from ancestor with this field: Get the field value from an identical field on a node nested above. For example you could have a #quote tag with an Author field, and it could automatically initialize with the value from the Author field of the #book that it is nested underneath
Every node stores a some default system fields that record date/time information based on certain events. This information are not editable, but can be queried.
Created time: Date/time a node was created
Last modified time: Date/time a node was last edited
Done time: Date/time a node was registered "done". Has to be manual toggle, doesn't work with done state mapping/kanban-style setups.
Date from calendar node: Calendar node that a node is a descendant of.
Tana has a bare-bones implementation of time zones, which was necessary because when people are collaborating in Tana across timezones and search for "what happened today", they're not interested in only what happened "today" in their own time zone, they want to know what happened in "today"s everywhere, possibly in every timezone.
Timezones are set per workspace, stored in Settings.
First day of the week setting are per user, stored in Settings
Allows you to choose whether to start your week on Sunday or Monday.
Currently the daily nodes in the calendar hierarchy are all organized starting Monday though, this only affects what you see in the various date pickers and in the calendar view.
You can also set this using command line > Set start of week to...