Jump to content

SamHasler

Level 2
  • Content Count

    36
  • Joined

  • Last visited

Community Reputation

0 Neutral

2 Followers

About SamHasler

  1. I might have an action ## such as "Take car to garage" that would be dependent on a next action # "call Fred to get the phone number for the garage". At least that was supposed to be the idea, although now I look through my notes I see that I've used it more for prioritisation than for ordering by dependency. I tend to keep most projects (multi-action tasks) as bullet lists in one note.
  2. For projects with more than one action an action ## is dependent on a next action # being performed first.
  3. It works for me with the latest Evernote Windows client. It's probably that the font your installation of Evernote is using for tags doesn't have Unicode characters, or at least not the ones you want to use. You could check what fonts your windows installation is configured to use in Control Panel.
  4. Sorry, I forgot that the perl script calls a batch script to export my "tickler" notes from Evernote. I'm not exporting anything to Google calendar if that's what you want, sorry. The perl script is just fetching the google calendar feeds and then combining them with an export of Evernote notes tagged :Future that have their Subject Date set to the date I want to be reminded of them. (In the screenshot the Evernote items are the ones with @Context instead of calendar names.) If you don't need the Evernote export you can just remove this section of the perl script: my @ticklers = split(/\n/, `getnotes_future`); foreach (@ticklers) { if (/(\d\d\d\d)(\d\d)(\d\d)T\d{6}Z\t(\S*)\t(\.*)\t(.*)/ ) { $main::duration = date("$1-$2-$3") - today(); &$setunits(); my $dow = Day_of_Week($1,$2,$3); # NB: $5 contains other tags, but we're not outputing it. push @output, "$1 $2 $3 $days{$dow}\t$main::duration$main::unit\t$4\t$6\n"; } else { push @output, "! NO DATE/TIME $_\n"; } } If you do want to combine Evernote notes with the Google Calendar feeds then you'll also need the getnotes_future.bat script that the perl script calls. Here it is: @echo off setlocal set PATH=%PATH%;C:\Program Files\Applications\Evernote\Evernote3 set PATH=%PATH%;C:\Program Files\System Tools\xmlstarlet-1.0.1 set EXPORTFILE=evernoteexport_calendar.txt set XPATH2=child::tag[text() != '#' and starts-with(text(), '@')] set XPATH3=child::tag[text() != '#' and not(starts-with(text(), '.')) and not(starts-with(text(), '@')) and not(starts-with(text(), ':'))] set XMLSELECT=sel --net -T -t -m "/en-export/note" -m "note-attributes/subject-date" -v "." -b -o "{tab}" -m "%XPATH2%" -v "concat('{',.,'}')" -b -o "{tab}" -m "%XPATH3%" -v "concat('{',.,'}')" -b -o "{tab}" -m "child::title" -v "." -n REM & -> ^& -> ^^^& (Escape twice! once for the SET command, and again when used) REM % -> %% set SED2=s/{tab}/ /g set SED3=s/}{/, /g set SED4=s/ {/ /g set SED5=s/} / /g set SED6=s/\%%/\%% /g cd %TEMP% ENScript exportnotes /q "tag::Future" /f "%EXPORTFILE%" xml %XMLSELECT% "%EXPORTFILE%" | sed '%SED1%;%SED2%;%SED3%;%SED4%;%SED5%;%SED6%;%SED7%' del "%EXPORTFILE%" Note that the batch script uses XMLStarlet to process Evernotes XML export, as well as the unix SED command which you can get by installing cygwin (which is the version I use) although the SED in GNU utilities for Win32 may be a simpler and smaller install, although I haven't tested the script with it.
  5. It's actually a perl script. Usage with Samurize It's been a while since I wrote it but if you're using it with Samurize I think that as well as installing ActivePerl you will have to install the Date::Simple perl module. Use the Perl Package Manager in ActivePerl's Start Menu folder to install any modules you are missing. Once you've added the script as a meter you need to add your calendars to the parameter list. For each calendar there are two parameters: the first is a name for the calendar (e.g. Personal, Work, Holidays, etc.), and the second is the http://www.google.com/calendar/feeds/.../basic url from the calendar's settings. Just leave any parameters that you don't want to use blank. You will also want to set the Tab Size in the Display settings to something large. I use 110 Usage outside Samurize if you're using something other than samurize to display it you'll probably want to replace the start of the script with something like this: sub Calendars { my @output ; my %calendars = ( "Personal ", "http://www.google.com/calendar/feeds/.../basic" , "Family ", "http://www.google.com/calendar/feeds/.../basic" , "Work ", "http://www.google.com/calendar/feeds/.../basic" , "etc ", "etc" ); The Script #!c:\cygwin\bin\perl.exe -w use strict; use LWP::Simple qw(get); use Date::Simple ('date', 'today'); use Date::Calc qw(Day_of_Week); use HTML::Entities; sub Calendars ($cal_1_name, $cal_1_url, $cal_2_name, $cal_2_url, $cal_3_name, $cal_3_url, $cal_4_name, $cal_4_url, $cal_5_name, $cal_5_url, $cal_6_name, $cal_6_url){ my @output; my %calendars = @_; my $params = "?futureevents=true&orderby=starttime&sortorder=ascending&singleevents=true"; my %months = ( "Jan", "01", "Feb", "02", "Mar", "03", "Apr", "04", "May", "05", "Jun", "06" , "Jul", "07", "Aug", "08", "Sep", "09", "Oct", "10", "Nov", "11", "Dec", "12"); my %days = ("0", "Sun", "1", "Mon", "2", "Tue", "3", "Wed", "4", "Thu", "5", "Fri", "6", "Sat"); my $calendar_name; my $calendar_url; my @lines; my $setunits = sub { $main::unit = " days "; if ($main::duration > 30) {$main::unit = " months "; $main::duration = int(($main::duration / 30) + .5);} elsif ($main::duration > 10) {$main::unit = " weeks "; $main::duration = int(($main::duration / 7) + .5);} elsif ($main::duration == 1) {$main::unit = "Tomorrow "; $main::duration = "";} elsif ($main::duration == 0) {$main::unit = "Today "; $main::duration = "";} elsif ($main::duration < 0) {$main::unit = "Passed" ; $main::duration = "";} }; while (($calendar_name, $calendar_url) = each(%calendars)){ next if '' eq $calendar_name; my $calendar_data = get "$calendar_url$params"; @lines = split(/\n/, $calendar_data); foreach (@lines) { s/&/&/g; if (/([\d\D]*)<\/title>When: (\S+) (\S+) (\S+) (\S+)<br>/ || /([\d\D]*)<\/title>When: (\S+) (\S+) (\S+) (\S+) ([0-9]+:[0-9]+ to [0-9]+:[0-9]+) /) { my $event = decode_entities($1); my $day = "$3"; if ($3 < 10 ) { $day = "0$3"; } $main::duration = date("$5-$months{$4}-$day") - today(); &$setunits(); if ($6) {$event = $event . " (" . $6 . ")"} push @output, "$5 $months{$4} $day $2\t$main::duration$main::unit\t$calendar_name\t$event\n"; } } } my @ticklers = split(/\n/, `getnotes_future`); foreach (@ticklers) { if (/(\d\d\d\d)(\d\d)(\d\d)T\d{6}Z\t(\S*)\t(\.*)\t(.*)/ ) { $main::duration = date("$1-$2-$3") - today(); &$setunits(); my $dow = Day_of_Week($1,$2,$3); # NB: $5 contains other tags, but we're not outputing it. push @output, "$1 $2 $3 $days{$dow}\t$main::duration$main::unit\t$4\t$6\n"; } else { push @output, "! NO DATE/TIME $_\n"; } } @output = sort (@output); return join "", reverse @output[0..19]; } print &Calendars(); Remove "reverse" near the end of the script if you want it sorted the other way.
  6. set the subject date (currently not accessible on the Mac client) and then make a saved search for [-subjectdate:day tag:expires] and check it whenever you open evernote to see if any notes have expired.
  7. You could always tag the notes as you process them, and then view all those tagged notes and move them at once and delete the tag once they're archived.
  8. I don't think this should be a default feature (whatever workflow users decide to layer on top of Evernote should be their choice), but having the ability to customise the interface and add functionality with macros would be a useful addition. Are you aware that you can select many notes at once either by holding Ctrl and clicking on their headers, or clicking in the Note List, and then drag them all to a notebook?
  9. Sometimes after I switch notebooks (in the desktop client) I remember something I want to add to the notebook I was just editing. It would be useful to have backwards/forwards buttons (with shortcut keys) to go to navigate a history of notes that I have been focused on. If it could also remember searches/saved searches that would be even better.
  10. If you edit the note attributes you should be able to set the subject date, it is separate from the created and modified dates. I assume the Mac client has a Note List view similar to the windows client, the Subject Date is a column, in that view. With my own system I also tag them "Future". I can then search for [tag] or [subjectDate] to find them, and [tag] to find overdue items.
  11. does [created] do what you want? you can search for [todo] and use the subject date to set a due date.
  12. That's not possible with the current search syntax. The way I set dates on notes that I want to be reminded of in the future is to set their Subject Date in the future and tag them "Future". I can then search for [tag] or [subjectDate] to find them, and [tag] to find overdue items. date searches find either all notes since the date, or all notes before it if you negate the search. So if you require a search for notes on a specific date you would have to combine them, e.g. [subjectDate]. See the API for a full description of date/time arguments in searches.
  13. It's also worth noting that there are plenty of other protocols that users might find useful that Evernote doesn't support such as mailto, skype, search-ms, and many more. I don't think it's wise to enumerate allowed protocols without reason as it needlessly limits the number of tools that Evernote can interact with.
  14. Was that referring to the http(s) link limitation that makes my evernotesearch:// protocol unusable? Although links to specific notes would be useful, a way of having links to saved searches inside notes would be much more versatile. Especially since they could be shared in public notebooks. And there are plenty of other protocols that users might find useful that Evernote doesn't support such as mailto, skype, search-ms, and many more. I don't think it's wise to enumerate allowed protocols without reason as it needlessly limits the number of tools that Evernote can interact with.
×
×
  • Create New...