Getting Things Done with Trello, Google Calendar, Evernote and Zapier – Project and Task Management

While you are in school you probably get along quite well with a normal calendar and checking your homework the day before its due. This worked for some of us and seemed also quite the standard when studying for an exam.
But how do you track your work and tasks now? What is your solution? Most people I know have no real solution, it is a juggle between emails, projects in the back of your head and our calendar with more task. All of this causes a big mess and more often than not leads to unimaginable stress.
I am not sure about you, but I have tried countless of project and task managers and all were missing something. All were missing this extra bit of flexibility and all were trying to impose a system on me that just didn’t feel quite natural.

 

 

As seen on: schurpf.com | Link to YouTube | Subscribe to my channel

Getting Things Done by David Allen

All this changed when I read Getting Things Done (GTD) by David Allen. This was really a live changer for me and fairly likely it will be for you too. If you haven’t read his book, I highly suggest you do so:
Getting Things Done by David Allen

I am not going too much into details here about the actual system, you really should read the book, but to get us all on the same page, the system I am talking about looks summarized like this:

Getting Things Done Chart

Getting Things Done – Tech Solution

After we decided we want to use GTD, we need to find a solution that works well with todays digital world. I want to be able to use the system anywhere I am. Or more specific anywhere at least one person has at least a mobile phone. This requirement was very important for me since my business mind has affected my personal life at times. Has it ever happened to you that you are at a dinner and you have this amazing idea, but you dont have anything to write it down? It sure has to me. Trying not to forget this thought has definitely made a dinner unpleasant. I will show you later how to completely avoid this.

Let us establish the main elements we need to cover to fully cover the GTD workflow and be able to use it in a tech environment.

-List system

-Inbox

-Reference location

-Calendar

-Access anywhere

Getting Things done with Trello

The first tool that really just jumped at me when I was looking into what to use in order to accomplish mimicking those flexible lists was Trello. It allows for very flexible lists and has apps for any device imaginable. The “anywhere-accessibility” was very important to me.
I personally found it very useful to create multiple boards (Trello expression for a group of lists). Here are the lists I use:

  • GTD
  • Locations
  • People
  • Projects
  • Rare used lists

GTD main board

GTD Main Board

My main board consists of multiple lists and looks like this:

GTD main board

I will go into a bit more detail why I have chosen the structure I have.

Getting Things Done Main Board

One of the core ideas of Getting Things Done is the concept of an inbox. Anything that comes to your mind and more importantly could distract you from what you are doing right now belongs in the inbox. I have my inbox in the middle of my main board called GTD. This is my daily starting point.
To the left of the Inbox you have a list To Evernote. This list I use to archive any item I would like to keep in the future but dont need present right now. The cards are automatically synced to Evernote, more on this later.
The next list is a calendar list. It is a chronologus order of things with deadlines or reminders for the future. This list is synced to my Google Calendar also more later on this.
To the right of my inbox I have my Today list, probably the second most important list. These are all things I wish to accomplish today. Often this list gets pilled up a bit and you need to be realist of what you are able to accomplish.
Next over is my Next Actions list. These are all things I need to do soon, but not today. You will quickly realize that often you need to prioritize as to what you can really do and what would be nice if you did but ultimately isn’t that urgent. The next list over is my Waiting For list. I keep all my items in there that I need to track and am interested in the outcome.

GTD main board right

The Someday/Maybe list includes items I wish I could do but realistically won’t get to do any time soon. In my Projects list I keep the names of all current projects to keep an overview. My tags list is something I came up with mostly to allow search afterwards. What I do is add a tag into the title of every card which will make it easier to find all results of this tag in the future. The final list on my main board is a Someday Maybe Evernote, which is essentially an archive to keep all the things I would eventually do in the future.

And this is it for the basic structure. The other boards are more specific for my personal life and work.

Getting Things Done Locations Board

The next board I keep is the locations board.

GTD Locations board

Any locations specific task goes there. For example I have an IPad list. Those items are typically things that aren’t very important and would make for a good relaxing part time activity, or are things I can read on a plane or similar location.
The next list is crucial to me, the Errands list. Anything I need to buy or get at some point goes on there. You can come up with any other number of lists of course, but these are the ones I use.

And there you have it the setup of my lists. The other lists are fairly straight forward and not worth mentioning, what is interesting though is how I make the entire system sync.

Syncing Trello, Evernote and Google Calendar with Zapier

The key to making the GTD system sync with each other is Zapier. Zapier is an API app that connects different services with each other using a Trigger Action pair. This means in short, Zapier connects two services with each other and makes exchanging data easy.

Creating a Zap to sync Trello with Evernote

Sync Zapier with Evernote 1

Setting up a Zap is rather straight forward. Sign up for Zapier and create a new Zap. Than pick the services you want to connect with each other. The next step is to authentiacte your accounts (aka give Zapier permission to access your data). Than you pick the board and list in Trello you would like to move over to Evernote.

GTD sync Zapier with Evernote 2

In a final step you select which fields you want to sync. Note that I use the name of the card in both the title and content. This prevents an error you will encounter for cards that consist of only a title.

GTD sync Zapier with Evernote 3

Make sure you test your settings before starting to work with it.

Syncing Google Calendar with Trello via Zapier

This works very similar, you pick the two services:

GTD sync Trello with Google Calendar

Pick a trigger:

GTD sync Trello with Google Calendar

The only real change comes with using the date fields from Trello to pass the correct information to Google Calendar:

GTD sync Trello with Google Calendar

Et voila, we have all the tools in place to have a highly efficient Getting Things Done system.

Syncing your board with Google Calendar using Trello’s iCal feed

Edit 27 Jul 2014 – Include good comment from Bart

Great article. But you don’t have to use Zapier to put Trello in Google Calendar. Trello has a calendar feed with all due-dates that you can import in Google Calendar.

We will look at how to sync an entire board using the Calendar Power-Ups form Trello and an ical feed of your board.

Note

Please chose only one of the two methods here, otherwise you will get duplicate entries.

This method will sync the entire board, not just a list. If you have a calendar list but also due dates within other lists, this option may not be for you.

The Zapier list version pushes the card once onto your Google Calendar, meaning any changes you do to your card after the initial push won’t effect your Google Calendar. In contrast, the iCal feed does reflect changes to your Trello card in your Google Calendar. However none of the methods are a true sync, meaning if you update an entry in Google Calendar, you won’t see the changes in Trello.

Enable Trello Calendar Powerup

In your Trello board go to  Show sidebar -> Power-Ups

schurpf_trello_power-ups

 

pick the calendar

schurpf_calendar

 

  1. Enable the Calendar Power-Up
  2. Enable the iCal feed
  3. Copy your feed

schurpf_trell_ical_feed

Go to your Google Calendar to import the new feed

schurpf_addcal_ical

Past your iCal feed url

schurpf_add_ical_feed

Summary

All you have to do is enable the Trello Calendar Power-Up and the iCal feed and copy it over into Google Calendar via Add by Url.

schurpf_ical_summary

GTD The Idea at Dinner problem

Let us revisit our dinner problem. Picture this, you are at a dinner with somebody (wife, girlfriend, whathaveyou) and you have this amazing idea. Chances are you will get distracted if you dont immediatly dump this idea into your system. Ideally you have your mobile phone on you with your Trello installed, but let’s say you dont, what do you do? Well you could ask the waiter for a napkin, but chances are you forget about the napkin, so this isn’t totally save. And after all you will have to remember that the napking has something important. We are still left with remembering something.

Email your GTD system

The solution is pretty cool: Setup an email address that forwards any message straight into your GTD inbox. Trello has an option to accept emails and create cards from it. Let me show you how to set this up:

  1. Get the Trello emailGTD email to boardGTD email board 2Set the correct list where you would like your email to show up and copy the ugly email that Trello gives you.
  2. Setup a forwarder email. This step is crucial, because it is impossible to remember this long ugly email during a lovely dinner, instead create a new email that you can remember and use that email to forward any email into your Trello inbox.
    I personally have setup a gmail account. To forward an email in Gmail, follow these instructionsGTD email board 3
  3. Verify your email Google will send you a verification code, which if all setup correctly should appear in your inbox.

GTD and your email inbox

email_inbox

A few comments regarding your email inbox. Very often your emails represent tasks too. I like to keep those separate from my Trello list since they are usually smaller tasks. What I have done is created a folder _Action and _WaitingFor. Any email that needs some work I copy over to _Action, any email I want to track gets copied over to _WaitingFor. It is important you make a copy. That way you can delete the email from your _Action/_WaitingFor list without losing the actual email from your inbox. I personally set my threshold at 20 min. If I think a task will take more than 20 min, I put it into my normal system. Anything shorter I deal with my email system.

Update 27 Jan 2015 via comment from Anna:

Instead of creating a new mail adress you can create an easy filter:

If your mail adress is anna.name@gmail.com you can send mails with anna.name+trello@gmail.com and it will end up in your regular gmail-inbox.
Then you create a filter that every mail coming to anna.name+trello@gmail.com should be forwarded to your trello mail. I also added that it should be marked as read and archived in my gmail inbox.
The mail trick is very usefull when you sign up for newsletters and such. You can either always write: anna.name+company’sname@gmail.com and then you know if you start receiving mail from another company that the first company has sold your mail…
Or you can always use anna.name+newsletter@gmail.com and create a filter to sort those mails out.

Final Words

Alright, that is my system, I hope you find these pointers somewhat useful. Do you use a similar system? Please let me know in the comments below. This system is working very well for me but any idea that could lead to improvment is highly appreciate. Also if you really like this, help me spread the word about the system via social media 🙂

Click to Tweet: For all fans of #GTD, check out this setup with Trello, Evernote, Google Calendar and Zapier #GTD http://ctt.ec/cu0L7+

Edits

27 Jul 2014 Include Trello Board via iCal feed

27 Jan 2015 Comment Anna email filters

The perfect time to determination soundness problem is before any visible sign appears. Actually there isn’t anything you can’t purchase on the Internet anymore. Whereas erectile malfunction is more common among older men, that doesn’t some you just have to live with. What about “canadian pharmacy cialis 5 mg” and “cialis canadian pharmacy“? In our generation, there are divers options for those ones who suffer from erectile disfunction. You may have heard about “canadian pharmacy online cialis“. More information about the question available at “canadian pharmacy cialis 20mg“. Why it happen? Can sexual disorders in men be prevented? If you get any prescription remedies like Viagra, check with a dispenser that they are sure to take with your other remedies.

#1 OIO Publisher Setup of first Ad – WordPress Ads Manager

We are jumping in between topics. On the one hand I am doing tutorials about Grunt – which I think is something every web dev should have. If it is not Grunt than at least some alternative similar system (what are you using?). At the same time I just did a setup with OIO publisher for pokerfacenews.com which I think turned out very well. Check out the advertise page: http://pokerfacenews.com/advertise/

In any case, here is how to setup the OIO publisher and get the first add up:

To get a $10 discount use coupon code: HELLO14-MONEYOFF at http://schurpf.com/go/oiopublisher/ 

Please let me know if you have any questions or if something is unclear in the comments below. Thanks for watching 🙂

The perfect when to resolve soundness problem is before any visible sign appears. Actually there isn’t anything you can’t purchase on the Internet anymore. Whereas erectile dysfunction is more common among older men, that doesn’t some you merely have to live with. What about “canadian pharmacy cialis 5 mg” and “cialis canadian pharmacy“? In our generation, there are divers options for those ones who suffer from erectile malfunction. You may have heard about “canadian pharmacy online cialis“. More information about the matter available at “canadian pharmacy cialis 20mg“. Why it happen? Can sexual disorders in men be prevented? If you get any prescription remedies like Viagra, check with a dispenser that they are sure to take with your other remedies.

WCPHX2014 – WordCamp Phoenix 2014 – Day 2

My second day at WordCamp was heavily overshadowed by the Saturday night party :). There were also some presentations I couldn’t quite connect with. Nevertheless lots of cool stuff. If you are looking for my first day at WCPHX 2014, you find it here: http://schurpf.com/wcphx2014-day1

Day 2

@scottbolinger – Apppresser

Talk about @apppresser

@pdclark – Cowboy, Meet Ninja

slides: http://pdclark.com/wcphx2014/

sandwich

source: http://xkcd.com/149/

wp engine .gitignore: http://cdn.wpengine.com/wp-content/uploads/2013/10/recommended-gitignore-wp.txt
deploy git to svn for wp plugins: https://github.com/brainstormmedia/deploy-plugin-to-wordpress-dot-org
php error logger for console: http://firelogger.binaryage.com
hide test sites: http://wordpress.org/plugins/wp-require-login/ or http://wordpress.org/plugins/wp-maintenance-mode

@pippinsplugins – Sane plugin updates
slides: http://pippinsplugins.com/slides/wcphx/22703/

beta test
tag releases
change logs with prefixes: NEW:, FIX:, TWEAK:
Release often iterate quickly (point releases)
Use auto updater for non wp plugin repo hosted plugin

http://wordpress.org/plugins/wordpress-reset/

@williamsba – Writing Secure WordPress code

slides: http://www.slideshare.net/williamsba/writing-secure-wordpress-code

  • SQL Injection SQLi
  • Cross Site Scripting XSS
  • Cross Site Request Forgery CSRF
esc_attr_e( $text, $domain );
esc_url( $url, $protocols, $_context );
esc_url_raw( $url, $protocols );	
sanitize_text_field( $str );
wp_kses( $string, $allowed_html, $allowed_protocols );
wp_kses_post( $data );

wp_nonce_field( $action, $name, $referer, $echo );
check_admin_referer( $action, $query_arg );
wp_nonce_url( $actionurl, $action, $name );

http://codex.wordpress.org/Data_Validation

@jondavidjohn – WP Deployment

slides: http://jondavidjohn.github.io/bigredbutton/

https://github.com/capistrano/capistrano/wiki/2.x-Getting-Started

https://github.com/crowdfavorite/gem-capistrano-wp

Other interesting projects/people

@jcasabona
http://casabona.org/events/responsive-design-with-wordpress-wcphx/

@ReduxFramework
http://reduxframework.com/

https://github.com/logoscreative/archetype-genesis

backbonejs
http://wordpress.tv/2013/10/20/k-adam-white-building-apps-with-backbone-js-and-wordpress/
https://github.com/kadamwhite/backbone-wordpress-demo

http://wordpress.org/plugins/json-api

interacting with external apis
http://wordpress.tv/2014/01/10/ben-lobaugh-interacting-with-external-apis-2/

just in time user interactions
http://www.youtube.com/watch?v=Sx5GJo_14S8

http://wordpress.org/plugins/wp-help/

https://www.cloudflare.com

Python Capistrano alike deployment: https://github.com/AllStruck/secret-robot

This is really more a summary of awesome than anything else. Thanks WCPHX2014! I left early Sunday morning so no Day 3 for me this time :(. I will sure stay next time until the end.

The unimprovable day to resolve health problem is before any visible sign appears. Actually there isn’t anything you can’t purchase on the Internet anymore. Whereas erectile disfunction is more common among older men, that doesn’t some you simply have to live with. What about “canadian pharmacy cialis 5 mg” and “cialis canadian pharmacy“? In our generation, there are divers options for those ones who suffer from erectile malfunction. You may have heard about “canadian pharmacy online cialis“. More data about the matter available at “canadian pharmacy cialis 20mg“. Why it happen? Can sexual disorders in men be prevented? If you get any prescription remedies like Viagra, check with a pharmacist that they are sure to take with your other remedies.

WCPHX2014 – WordCamp Phoenix 2014 – Day 1

This is unreal, all the great stuff I learned over the short time span. Got a lot of new ideas and things to learn from this small weekend. I wanted to put together what I found most interesting in this blog post more as a list and reminder for myself but also for anybody reading this. It may start you off on a learning quest 🙂

This is not my attempt at a complete summary of WCPHX2014, I am merely trying to note down the things I found most interesting and acredit the person how got me to think in that direction via their twitter handle.

Day 1

@bradparbs – Writing Extensible Plugins

slides: http://b.parbs.me/TPhc

if (function_exists(function_name))
if (class_exists(class_name))

do_action( $tag, $arg );
apply_filters( $tag, $value );

load order of plugins, use: plugins_loaded

get_template_part( $slug, $name );

file_exists(filename)

wpcli – command line for wordpress
check: http://www.getsource.net/2013/07/wcsf2013-wpcli/ for more

local dev environment – https://github.com/10up/varying-vagrant-vagrants

linter – https://github.com/SublimeLinter/SublimeLinter

@obencain, @michaeldcain
slides: https://cloudup.com/c6A3IprTH6N

Don’t trust anybody – SANATIZE your data

some functions to look at:

wp_localize_script( $handle, $object_name, $l10n );
wp_add_inline_style( $handle, $data );
has_post_format( $format, $post );
wp_list_pluck( $list, $field );

is_email( $email, $deprecated );
human_time_diff( $from, $to );
wp_trim_words( $text, $num_words, $more );	
capital_p_dangit( $text );
esc_url_raw( $url, $protocols );

https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php

@cliffseal
slides: http://www.slideshare.net/cliffseal/transients-wcphx

set_transient( $transient, $value, $expiration );	
get_transient( $transient );
delete_transient( $transient );
wp_remote_get( $url, $args );	
wp_remote_retrieve_body( $response );

http://codex.wordpress.org/Transients_API

set transient for db queries, external api calls, any data task that takes time

Tip: hook in logical spots to delete transient
Example delete transient on post save

add_action( 'save_post', schurpf_del_transient );
function schurpf_del_transient()
{
	delete_transient('schurpf_my_transient' );
}

https://github.com/logoscreative/wcphx14-demo-plugin

Mark Jaquith solution: https://github.com/markjaquith/WP-TLC-Transients

[wpsleep start=”26.01.2014 21:55″]Check out my second day at WCPHX 2014 at http://schurpf.com/wcphx2014-day2/.[/wpsleep]

The ideal time to resolve soundness problem is before any visible sign appears. Actually there isn’t anything you can’t purchase on the Internet anymore. Whereas erectile disfunction is more common among older men, that doesn’t slightly you merely have to live with. What about “canadian pharmacy cialis 5 mg” and “cialis canadian pharmacy“? In our generation, there are divers options for those ones who suffer from erectile disfunction. You may have heard about “canadian pharmacy online cialis“. More info about the question available at “canadian pharmacy cialis 20mg“. Why it happen? Can sexual disorders in men be prevented? If you get any prescription remedies like Viagra, check with a pharmacist that they are sure to take with your other remedies.

Creating a grunt task

In our las part of this series I showed how to get a simple grunt task to run. In this tutorial we will look at how to create and configure your own tasks. To do so we will look at how we would setup an image optimization task.

You can download all files used here: http://bit.ly/schurpf-create-grunt-task

Find an image optimization task

We will use a task somebody else wrote for us. The easiest way to find this task is to just google: grunt image optimization. The first link that shows up for me is: https://github.com/gruntjs/grunt-contrib-imagemin. We will us this for this example.

Alternatively you can search directly in https://npmjs.org/

or way geekier type the following in your command line:

$ npm search gruntplugin image optimization

#GeekOut #TooCoolForSchool

Setup package.json

Our next task is to create a package.json file. Open a terminal in the folder you want your grunt files in. To create a package.json file I usually just run the command

$ npm init

and just hit enter all the way through.I go into the file and delete the main, script and license. After that I fill out the rest of the fields (you don’t have to).

Here is what my package.json looks like in the end:

{
  "name": "grunt_task",
  "version": "0.0.0",
  "description": "Grunt file for grunt task tutorial",
  "author": "schurpf"
}

Intall grunt

In the open terminal, I run

$ npm install grunt –save-dev

Note! it is –save-dev with two -, -. If you copy paste this may cause an error!

This will update your package.json file and make grunt available in this project.

Intall imagemin

We will follow the instruction from github and run

$ npm install grunt-contrib-imagemin –save-dev

This will download us all we need to run the image optimization task.

Create and configure your Gruntfile.js

We are getting close, now it is time to create our Gruntfile.js. Create a new file called Gruntfile.js and past the following code in there:

module.exports = function(grunt) {
  // set up grunt
};

This is the base of a standard Gruntfile.

Note for mac users: I usually type in the terminal:

$ touch Gruntfile.js

I than open the file via finder.

Configure the imagemin task

We are close, we need to configure our task, to do so I copy the sample configuration from github into my Gruntfile.js.

grunt.initConfig({
  imagemin: {                          // Task
    static: {                          // Target
      options: {                       // Target options
        optimizationLevel: 3
      },
      files: {                         // Dictionary of files
        'dist/img.png': 'src/img.png', // 'destination': 'source'
        'dist/img.jpg': 'src/img.jpg',
        'dist/img.gif': 'src/img.gif'
      }
    },
    dynamic: {                         // Another target
      files: [{
        expand: true,                  // Enable dynamic expansion
        cwd: 'src/',                   // Matches relative to this path
        src: ['**/*.{png,jpg,gif}'],   // Actual patterns to match
        dest: 'dist/'                  // Destination path prefix
      }]
    }
  }
});

grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);

 

We need to make a few changes:

  • remove target “static”
  • remove cwd line in target dynamic
  • remove exand: true in target dynamice
  • change src in target dynamic to match the folder you want optimized

After those changes my Gruntfile.js looks like this:

module.exports = function(grunt) {
  grunt.initConfig({
  imagemin: {                          // Task
    dynamic: {                         // Another target
      files: [{
        expand: true,                  // Enable dynamic expansion
        src: ['images_orig/*.{png,jpg,gif}'], // Patterns to match
        dest: 'dist/'                  // Destination path prefix
      }]
    }
  }
});

grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
};

Run grunt

Switch to your command line and type

$ grunt

Sit back relax and enjoy the magic :). In my case the images went from 1.8mb to 1.3mb. Pretty nice little image optimization. The best part about all this is that you will now literally be able to do this in all your projects.

If you didn’t do so, you can download all files used here: http://bit.ly/schurpf-create-grunt-task.

Is everything clear? Pls let me know in the comments below if one of the steps does not work.

The perfect time to resolve health problem is before any visible sign appears. Actually there isn’t anything you can’t purchase on the Internet anymore. Whereas erectile dysfunction is more common among older men, that doesn’t something you simply have to live with. What about “canadian pharmacy cialis 5 mg” and “cialis canadian pharmacy“? In our generation, there are divers options for those ones who suffer from erectile dysfunction. You may have heard about “canadian pharmacy online cialis“. More info about the problem available at “canadian pharmacy cialis 20mg“. Why it happen? Can sexual disorders in men be prevented? If you get any prescription remedies like Viagra, check with a dispenser that they are sure to take with your other remedies.