Tag structure for Dynalist (GTD , Zettelkasten and SecondBrain )


I have experimented lately with a better tag structure for Dynalist that both incorporates GTD (Getting things done) and Second brain or Zettelkasten(Personal CRM, Personal wiki, Thought incubator). I think these techniques will be useful to anyone who don’t want their tags to devolve into a mess.

For GTD I like to make clearly defined edges and I want my tasks not to get lost among my other tags. I also find that using the tags inline as verbs works better for my brain as it forces me to make evey action actionable .

  • “##!Draft proposal to X”
  • is better than:
  • “Write proposal to X #Draft

Every task gets a context that shows me where I can do it.:


For Secondbrain/Zettelkasten/personal wiki I like to do it like this:

Ideas: #Any_Theme_You_Like
People: @&email@adress.com
Company: @$Company_Name

See an updated example dynalist file for how the tags are set up here:

Feel free suggest what you would do to improve on this setup. Or just to ask why in the world I would do such a thing.


This is really great, thanks for sharing! I’ve been diving into Zettelkasten and was struggling with how to sort out my tags. This is a great jumping off point for me, but I was wondering how you tag more personal plans and events? How would you tag a birthday party or your parents’ anniversary?


1 Like

First of all welcome. :smiley:

As to your question:
I separate work and personal projects and actions in two different documents. This way you can have a separate tag pane for each. If I want to see all my personal projects I just go to my personal document and click on the tag “@@Project” tag. Likewise for the work projects. If I want to see all my projects there is a search for showing all tags in all documents. (ctrl+enter)

Zettlekasten is another document. Since it contains my thoughts I deem it private and therefore separate from my work. Even though many thoughts are related to my work.

So a birthday for me would be a project. Eg:

Daves Birtday @@Project
(In the note field I add which area of responsibility it belongs to and the ideal outcome.)
@@AOR Happy , grateful, and inspired family, friends and colleagues
Ideal outcome: A celebration of Dave and life where friends and family can get to know and understand each other better and have a good times with pink unicorns for young and old.

  • #!RD Bakery that makes vegan b.day cakes
  • #!Buy 1k Balloons #@Amazon
  • #&Remind @&Eric to bring 20 chairs
  • #&Ask @&Julia to make 30 unicorn hats

I hope that helped make it clearer.


Thank you for formalizing this approach - I had folders for work and school, and I recently turned them into pages with items I expand and collapse as I need them. This is a great example of how a one-major-topic-per-page can be very powerful.

This example is great for when you are an active part of an event, but I guess I meant more in the vein of a calendar or ‘future log’ if we’re talking in bullet journal parlance.

I suppose I could tag them with the person’s specific tag instead of having a ‘birthday’ tag (#@&Doug’s Birthday vs Doug’s #birthday) - then the recurrences would accumulate on that person instead of on a global birthday tag. Does that make sense?

Thank you for helping me clarify my process!

1 Like

May be I am missing something. But birthdays I try to keep in my calendar. But you could use Dynalist as a personal contacts management system and add birthdays too.

Kenneth, what is the purpose of using @@project as a tag instead of @project?

Very interested in Zettelkasten but also very overwhelmed.

In my Dynalist there are hundreds of @ tags making autocomplete useless. @@ tags on the other hand are only a few. This lets me use the autocomplete feature in a sane manner.

Same goes for all the other tags that part of my GTD setup. That is why I use #! for creation tags, #( for consumption tags and #& for communication tags and so on.

All other hashtags that are not part of my GTD setup. Like #ZettelKasten topics, html colours and trending topics I can just leave as is.

I’m attempting to put everything in my dynalist. I have a master ‘chronical’ where I input things by date, and then they sync to my google calendar, so tagging will get more important as I enter more information.

For example, before your post about tags, I was entering birthdays as: “Doug’s #birthday !(03-17-20 | 1y)”. This is fine, but I can only search on #birthday, which will show me everyone’s birthday. With your tagging system, I’m changing these types of items to “@&Doug’s birthday !(03-17-20 | 1y)”, which will let me search for everything Doug related.

I tag other items as #plans, #work, etc so that way I can use IFTTT to split these items among several calendars once they’ve been imported to my master ‘incoming’ calendar.


Can you explain this a little more? I’d love to be more selective about what goes into my calendar.

1 Like

I see. I would suggest you tag #birthday too. Then you can have the best of both worlds. :wink:

That is a really good idea I haven’t thought of. Which recipe are you using in IFTTT?

First, you want to turn off google calendar sync on whichever pages you have it turned on. You’ll want to make a bucket for all of the dates to go to in google calendar, so I set up a calendar called ‘incoming’. Because we tag, we can then use IFTTT to split the events on a search.

In IFTTT, make a new applet. You’ll have to connect whatever services you’re using. I’m sending google calendars to another google calendar, so it only needs the one connection, but you could send these events to any calendar service IFTTT (or zapier, etc, etc) works with. The trigger action is Google Calendar > New event from search added. I select the calendar ‘incoming’ and type whichever tag I want to filter (#plans, let’s say, but could be any tag)

The completed action will then be Google Calendar > create detailed event. You’ll pick the calendar you want the filtered events to go to, and you can set what fields get filled with what information from the original event. Create the action, turn google sync on in dynalist, and wait for the magic to happen.

You have to create a new applet for each tag you want to filter, but it doesn’t take too long.

I had to go in and manually trigger the first syncs in IFTTT after dynalist had uploaded everything to my incoming calendar, but they automatically update after that.

Let me know if you need more info!


Thank you for a detailed walkthrough :heart:

1 Like

I’m not fully understanding what is happening here. A couple of questions:

  1. Are you using Symbols like #, =, ! to make autocomplete faster?
  2. On what document structure is this based? All in one file?
  3. Are you searching for the tags, or do you also have searches bookmarked that you use as views (e.g for current tasks)

I’m currently trying to setup Dynalist as a Second Brain. I have four documents: Inbox, Projects, Areas and Resources. In Resources I save mostly articles. I don’t use tags there, but I think I should. Currently I’m working with topics (e.g Design, Business etc) and below that topics are all my notes.

1 Like
  1. Yes. exactly
  2. I have loads of files
  3. Both.
  4. Articles I would tag as they relate to a thought/concept in Zettlekasten.

I am changing my tag setup a little so search is a little easier for all next actions. I’ll update my example file and original post as soon as I have experimented a little more. For the moment I am leaning towards all next action tags/verbs having two ## in the start of the tag.

So #!, #& and #( would become ##!, ##&, or ##(

Other tags will remain as is.