Importing a ton of tasks from Astrid
I'm a new Remember the Milk convert and was using Astrid avidly before this. When they announced their acquisition by Yahoo, I really wanted to switch to Remember the Milk, but didn't know how. While you can email in bulk lists to the RTM import email address (https://www.rememberthemilk.com/services/email/#import), that only allows 50 tasks per email, and I had 100+ tasks I wanted to import.
One work around is to use the bulk adder (http://files.alnorth.com/rtm/index.html). The rest of this post will be specific to Astrid importing.
1) To get a back up of your astrid tasks, go to http://astrid.com/home/export and select "Back up my data".
2) This should generate an email from astrid. In that email should be an attachement with a zip file that contains task.csv file. Open that file up with Excel.
3) Make the table into an Excel table (not necessary), and then in a new column, insert the formula "=[@Title]&IF(ISTEXT([@Description])=TRUE,": "&[@Description],)&" !"&[@Importance]&" #"&[@Lists]".
Alternatively, if you did not make your data into a table, insert the formula "=A2&IF(ISTEXT(Q2)=TRUE,": "&Q2,)&" !"&F2&" #"&P2". Now just copy and paste that column all the way down your list of tasks.
NOTE: your list includes completed tasks. If you do not want to import those (they're a pain), sort the "Completed on" column R and only copy and paste the tasks that don't have a date in that column.
4) Now head over to RTM and make all the lists you had in Astrid, keeping the exact same spelling. You can rename them later after you've imported everything by going to "Settings>Lists>selecting the list and pressing the "y" shortcut"
5) Make sure none of the tasks have very long descriptions or weird symbols, this can cause the process to hang. If they don't, then copy and paste that column into the bulk adder's list (once again: http://files.alnorth.com/rtm/index.html) and click "Send to RTM". The button should turn gray. Once the button un-grays itself, all your tasks should have been imported.
Optional: If you have notes in your Astrid tasks, they need to be added manually. Just click through your most important tasks on Astrid, copy and paste them into the tasks in RTM. Sorry, I couldn't figure out an easier way to do this. The shortcut to add a note is "y" if that helps.
Hope this helps! It took me a while to figure out how to do the import, but once I figured it out, it was really quick to switch over to RTM. Hopefully this will cut down the work for some of you.
One work around is to use the bulk adder (http://files.alnorth.com/rtm/index.html). The rest of this post will be specific to Astrid importing.
1) To get a back up of your astrid tasks, go to http://astrid.com/home/export and select "Back up my data".
2) This should generate an email from astrid. In that email should be an attachement with a zip file that contains task.csv file. Open that file up with Excel.
3) Make the table into an Excel table (not necessary), and then in a new column, insert the formula "=[@Title]&IF(ISTEXT([@Description])=TRUE,": "&[@Description],)&" !"&[@Importance]&" #"&[@Lists]".
Alternatively, if you did not make your data into a table, insert the formula "=A2&IF(ISTEXT(Q2)=TRUE,": "&Q2,)&" !"&F2&" #"&P2". Now just copy and paste that column all the way down your list of tasks.
NOTE: your list includes completed tasks. If you do not want to import those (they're a pain), sort the "Completed on" column R and only copy and paste the tasks that don't have a date in that column.
4) Now head over to RTM and make all the lists you had in Astrid, keeping the exact same spelling. You can rename them later after you've imported everything by going to "Settings>Lists>selecting the list and pressing the "y" shortcut"
5) Make sure none of the tasks have very long descriptions or weird symbols, this can cause the process to hang. If they don't, then copy and paste that column into the bulk adder's list (once again: http://files.alnorth.com/rtm/index.html) and click "Send to RTM". The button should turn gray. Once the button un-grays itself, all your tasks should have been imported.
Optional: If you have notes in your Astrid tasks, they need to be added manually. Just click through your most important tasks on Astrid, copy and paste them into the tasks in RTM. Sorry, I couldn't figure out an easier way to do this. The shortcut to add a note is "y" if that helps.
Hope this helps! It took me a while to figure out how to do the import, but once I figured it out, it was really quick to switch over to RTM. Hopefully this will cut down the work for some of you.
pancho1 says:
sherry_Zhou_98...just like you I have 100's of tasks in Astrid. I tried to follow your method here but I am too slow..
3 ...."insert formula in a new column...where exactly in the spreadsheet and how does that connect with the contents?
5. ....copy and paste "THAT COLUMN"...into the bulk adders...again...Which column are referring to...?
The column i pasted was the column with the formula (one single row)...and I just created that as a task in RTM...
3 ...."insert formula in a new column...where exactly in the spreadsheet and how does that connect with the contents?
5. ....copy and paste "THAT COLUMN"...into the bulk adders...again...Which column are referring to...?
The column i pasted was the column with the formula (one single row)...and I just created that as a task in RTM...
pancho1 says:
figured it out!! thank you!!! this was fantastic!! just one comment..in the formula for the excel table the " symbol should only be at the end of the formula with the = sign at the beginning. sherry.... you saved me a lot of grief THANK YOU!!!
Thank you for inspiration! I went one step further, and made a short perl script to read the CSV file from astrid and produce text output to import using the bulk importer. My script gets the repeats, too - including Every and After.
I put the script on a place you can get it:
http://www.deaven.net/~deaven/cnv_astrid.pl
I put the script on a place you can get it:
http://www.deaven.net/~deaven/cnv_astrid.pl
egypturnash says:
I'm trying to use Deaven's perl script, since I don't have any spreadsheets in my life. I get this error when I run it on OSX:
Can't locate Text/CSV.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at cnv_astrid.pl line 15.
BEGIN failed--compilation aborted at cnv_astrid.pl line 15.
Any suggestions?
Can't locate Text/CSV.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at cnv_astrid.pl line 15.
BEGIN failed--compilation aborted at cnv_astrid.pl line 15.
Any suggestions?
egypturnash says:
Here is a version of Sherry Zhou's spreadsheet thing that will work with Google Docs' spreadsheet. It also eliminates finished tasks, and properly handles tasks with no tags.
=if(isblank(J2)=false,"",A2&IF(ISTEXT(I2)=TRUE,": "&I2,)&" !"&F2&(if(isblank(H2)=false," #"&substitute(H2,","," #"),"") ))
=if(isblank(J2)=false,"",A2&IF(ISTEXT(I2)=TRUE,": "&I2,)&" !"&F2&(if(isblank(H2)=false," #"&substitute(H2,","," #"),"") ))
randoogleit says:
egypturnash,
You need to install the cpan module for Text::CSV.
If you don't have it installed yet, install cpanm (seems to work better than cpan)
cpan App::cpanminus
cpanm --sudo Text::CSV
You need to install the cpan module for Text::CSV.
If you don't have it installed yet, install cpanm (seems to work better than cpan)
cpan App::cpanminus
cpanm --sudo Text::CSV
randoogleit says:
deaven,
First of all, thanks for the script! I was thinking about making one myself in python or perl, but I was kind of dreading it.
I've made a couple of slight changes to your script, if you want them.
You were missing the asterisk for adding repeats, so none of the repeats actually were making it over (even though the wording did).
Also, lists were allowed spaces in astrid, so spiting by spaces didn't really work for me. If tasks were in more than one list though, astrid put a comma in between, so I split by comma and then replaced all spaces in the list names to underscores for RTM (which basically turns them into tags if the list doesn't exist, I guess).
Anyway, here's the diff:
--- cnv_astrid.orig.pl
+++ cnv_astrid.pl
@@ -34,7 +34,7 @@
@line = $csv->fields();
unless (@fields > 0) {
@fields = @line;
- print "reading " . scalar(@fields) . " fields.\n";
+# print "reading " . scalar(@fields) . " fields.\n";
next;
}
@@ -73,12 +73,13 @@
if ($r =~ /INTERVAL=(\d+)/) {
$interval = $1;
}
- $repeat = "$rverb $interval $unit";
+ $repeat = "*$rverb $interval $unit";
}
# parse lists
my $list = "";
- foreach (split /\s+/, $line[$list_idx]) {
+ foreach (split /,\s*/, $line[$list_idx]) {
+ $_ =~ tr{ }{_};
$list .= "#" . $_ . " ";
}
First of all, thanks for the script! I was thinking about making one myself in python or perl, but I was kind of dreading it.
I've made a couple of slight changes to your script, if you want them.
You were missing the asterisk for adding repeats, so none of the repeats actually were making it over (even though the wording did).
Also, lists were allowed spaces in astrid, so spiting by spaces didn't really work for me. If tasks were in more than one list though, astrid put a comma in between, so I split by comma and then replaced all spaces in the list names to underscores for RTM (which basically turns them into tags if the list doesn't exist, I guess).
Anyway, here's the diff:
--- cnv_astrid.orig.pl
+++ cnv_astrid.pl
@@ -34,7 +34,7 @@
@line = $csv->fields();
unless (@fields > 0) {
@fields = @line;
- print "reading " . scalar(@fields) . " fields.\n";
+# print "reading " . scalar(@fields) . " fields.\n";
next;
}
@@ -73,12 +73,13 @@
if ($r =~ /INTERVAL=(\d+)/) {
$interval = $1;
}
- $repeat = "$rverb $interval $unit";
+ $repeat = "*$rverb $interval $unit";
}
# parse lists
my $list = "";
- foreach (split /\s+/, $line[$list_idx]) {
+ foreach (split /,\s*/, $line[$list_idx]) {
+ $_ =~ tr{ }{_};
$list .= "#" . $_ . " ";
}
dario.cimafonte says:
Thanks deaven!
I had to change the encoding from utf8 to latin1 to make it work for me, that might depend on my browser settings while downloading the export though.
Also, for those who are using Ubuntu, I changed from
# @line = $csv->fields();
to
@line = @$row;
because I was using version 1.21 of the module (that comes with the Ubuntu repositories), otherwise I would get all blank lines.
I had to change the encoding from utf8 to latin1 to make it work for me, that might depend on my browser settings while downloading the export though.
Also, for those who are using Ubuntu, I changed from
# @line = $csv->fields();
to
@line = @$row;
because I was using version 1.21 of the module (that comes with the Ubuntu repositories), otherwise I would get all blank lines.
joelsteam says:
How do you get the due dates into the bulk adder?
fiztlen says:
Thanks Sherry, I added some more fields to this, based on the second, alternative formula. Note to others: it appears Excel came up with different columns for our data.
I used Astrid lists as tags, so converted the list of lists to tags and converted spaces to underscores. I'll likely make further changes, but can edit the tag instead of individual tasks.
I haven't sorted out a smart add description -> notes and didn't feel up to translating between repeat codes in excel, so I just added tags to let me know I need to move those details manually. Notes will keep me busy for a while.
Yours:
"=A2&IF(ISTEXT(Q2)=TRUE,": "&Q2,)&" !"&F2&" #"&P2"
Mine:
=A2&IF(NOT(ISBLANK(E2)),TEXT(E2," mm/dd/yyyy hh:mm AM/PM"),"")&IF(F2<4," !"&F2,"")&" "&IF(ISTEXT(H2),"#"&SUBSTITUTE(SUBSTITUTE(H2," ","_"),","," #"),"")&IF(ISTEXT(G2)," #REPEAT","")&IF(ISTEXT(I2)," #DESCRIPTION","")
My columns, modifications
- A: Title
- E: Due date
- F: Priority: P4 -> P0
- H: Lists -> Tags
- G: Repeat
- I: Description
I used Astrid lists as tags, so converted the list of lists to tags and converted spaces to underscores. I'll likely make further changes, but can edit the tag instead of individual tasks.
I haven't sorted out a smart add description -> notes and didn't feel up to translating between repeat codes in excel, so I just added tags to let me know I need to move those details manually. Notes will keep me busy for a while.
Yours:
"=A2&IF(ISTEXT(Q2)=TRUE,": "&Q2,)&" !"&F2&" #"&P2"
Mine:
=A2&IF(NOT(ISBLANK(E2)),TEXT(E2," mm/dd/yyyy hh:mm AM/PM"),"")&IF(F2<4," !"&F2,"")&" "&IF(ISTEXT(H2),"#"&SUBSTITUTE(SUBSTITUTE(H2," ","_"),","," #"),"")&IF(ISTEXT(G2)," #REPEAT","")&IF(ISTEXT(I2)," #DESCRIPTION","")
My columns, modifications
- A: Title
- E: Due date
- F: Priority: P4 -> P0
- H: Lists -> Tags
- G: Repeat
- I: Description
Log in
to post a reply.