PREFACE Some of the features, especially the deeper features of eccoMagic eXPressions (memorized dates, holiday lists, sequenced expressions, etc...) may seem 'complex' at first glance. Jump in and start with the basics, and you will quickly find, within a very, very short time, mastering the depth of power is easier than it first looks. The eccoMagic eXPressions are incredibly powerful, time saving, and allow doing astoundingly magical things with your calendar in Ecco. A little time spent mastering the tools will be rewarded a hundredfold... maybe even much more.

I. Quickstart

1) Run the eccoMAGIC XP program. It only needs to be run once per windows boot-up, and can be placed in your "startup" folder for auto-start at each windows boot.

2) Use the magic date feature: When entering a date, use the text date dialog and use 'magic dates'. For next Sunday, simply type "n sun" and enter. It's that easy.

A) Computational dates are also just that simple. Just enter "
feb 3+90d" (you don't need to enter the quotes, of course) enter and... the date is entered.

B) Tutorial 1: Logging events / Journaling

1) When you're logging time/events/journaling, etc. entering the date something happened becomes amazingly simple. "today" (or "tod"), "yesterday" ("yes'), "-1d" ("-1") a day ago... "-3" 3 days ago.... "last wednesday" ("Lwe" or "L we"), or even "last sun -w" (or "L su -week", etc.) for Sunday, a week before last.

C) Tutorial 2: Updating dates (annual, monthly, etc.)

1) Easiest with dates in a column. Simple click on (or move to) the first date, eg. "02/22/11" and press either the right arrow or the 'end' key to move the cursor to the end of the date. (the date, when selected is first all blue, ie., if you press any letter or number it will erase the date, which for this purpose, you don't want to do). Then simply press the adjustment. For example, to update an annual date by one year, simply press "y". For a week, "w", a month "m". For a certain number of days, press space and the number of days.

Then, simply press the down arrow key to move to the next date in the column. It's that easy.

Ie. "02/22/11y" will become "02/22/12", etc.

D) Tutorial 3: Scheduling tasks

1) To schedule a task a certain number of days from now, simply enter the number of days in the date field. "12" becomes 12 days from now. Or, you can enter "3w" or "1m", etc. for weeks or months.

You can also combine, for example "m 2w" for one month and 2weeks from now.

2) To schedule a task on a certain day of the week, simply enter "n thurs" for next thursday. For a number of weeks from a certain day of the week, "n thurs 2w" for 2weeks from next Thurs.

E) Tutorial 4: Moving around the F4 calendar

1) "F4" is a great Ecco feature. You can select a number of days foward, or backward (with a negative number) from today to view the calendar. But, it's frustrating if you want to move around relative to the date you are viewing, and not relative to today. Now, it's easy!

After pressing F4, skip the first box (best by pressing Tab), and go directly to the date entry box. Select any date, or even a relative date such as "8" (ie. that will take you 8 days from TODAY). Press enter, and you are there.

Now, to move forward or back RELATIVE to the day you are looking at, simply press F4, Tab (to the date entry box) and enter "}" and however you want to move. For example "}4" to move forward 4 days, "}-100" to move backwards 100days, "}3w" to move forward 3 weeks, etc. Press Enter, and you are there!

F) Tutorial 5: 1-2-3 Automatic Workday Scheduling

1) With some very easy set-up, you will have the instant ability to effortlessly schedule all of your future dates automatically on "workdays" only.

2) Step 1 :: Create a list of holidays

1) This list can be an item, or collection of mixed items and sub-items in any Ecco outline. Your list can be in block format, or each 'holiday' can be listed as a seperate item or sub-item. In our example, we will have each 'holiday' be a seperate sub-item.

2) Create an item, with a simple text description, such as "Holidays". Best to avoid using numbers, so you can click directly on the item in order to load in all the sub-items. By not using numbers, you avoid the change that you might accidently include a valid holiday as the item name.

3) Then, nder the item, begin by listing the recurring periods which are holidays, ie., not business days, ie. that you do not want to schedule on.

(Note: if you want to clear currently set holidays, make the first line of your list "_clear_")

For many offices, "Saturday" and/or "Sunday", might be listed. Each exclusion should be listed on a seperate line.

List then, any annual dates which are holidays, for example, new years, "annual Jan 1"

Then list the legal or other holidays for the next year or as long as you will be scheduling for in the future. You can enter dates as a fomula for multiple year entry of non-fixed day of the year holidays. For example, to include Thanksgiving for this year add a line "11/1 -d n thurs 3w". To include Thanksgiving as an exception for this year and next, just copy and paste the same line again and add to the end of the line " 1y".

To include Thanksgiving as a holiday for the next decade, in place of the previous lines, use "annu "11/1 -d n thurs 3w"


Remember, you only need to set up your holiday table once!


For holidays that last more than one day, simply add " x" and the number of days the holiday lasts, for example "annual April 15 x3" for a 3 day holiday starting April 15, and recurring annually.


To also mark the Friday preceeding a Saturday falling holiday as a holiday, add an EXTRA entry with the same expression used for the holiday, but add " -b". For example US Federal Election day is held on the first Tuesday following the first Monday of November. The expression for that is "Nov 1 n tues". ("Nov 1 -d n tues" would be the first Tuesday in November, including a Tuesday that fell Nov. 1). By adding "-b" in a duplicate entry, eg. "Nov 1 n tues -b", if the date falls on a Saturday, the Friday preceding is marked also as a holiday. (To mark also the following Monday if a date falls on a Sunday add an entry with "+bb".)

You can freely use multiple lines with the same date and the -b and then +bb options, to create "long holiday weekend rules", as, if the date is not a Saturday, the "b" option is ignored, and if not a Sunday, the "bb" option is ignored.

7) (Note: there is a full US Holiday template included in the examples section of the "Magic Date Entry" How to)

8) In our example, your list should look something like this:

1) Holidays

1) _clear_

2) Saturday

3) Sunday

4) annual Dec 25 x7

5) Thanksgiving

1) 11/1 -d n thurs 3w

2) 11/1 -d n thurs 3w 1y

3) or

4) annu 11/1 -d n thurs 3w

3) Step 2 :: Click on the Top Parent of your holiday list and press WinKey+Shift+Control+O

1) You will likely see a small flashing 'processing' box while the dates are calculated and loaded. If you have an extensive holiday list this could take from several seconds (hundreds of dates) to up to several minutes (thousands of dates). Multiple lists can be used for different contexts. The example lists include holidays extending 10 years into the future, and takes from 12 seconds to a minute or so to load, depending on the system.

2) After all of the holiday dates have been calculated and loaded, a confirmation dialog will appear showing the dates. ( If hundreds of dates have been included, the dialog can be several pages long.)

4) Step 3 :: Using your holidays

1) simply include "$" in any date expression, and the date will automatically be reset to a non-holiday.


"<*>$" included in any date expression, turns on automatic rescheduling. All subsequent expressions (but not 'hard' dates such as '12/11/2022') will be automaticall set on non-holidays.

"<*>" at the end of any date expression turns off the automatic application of the "$" feature.

5) Notes ::

1) You may freely add to existing holidays by clocking on a holiday list and pressing the WinKey+Shift+Control+O command. To add to existing dates, be sure not to include the _clear_ command. (the _clear_ command on any line of the imported dates, will CLEAR all existing dates from memory).

3) Use the recurring date fix feature: First, add a recurring date, even an 'every day' or same day each month from the recur pulldown menu. Stay in the calendar dialog box, and either simply hold down the shift while you left click on the "Recur" button or type Alt+Shift+R. It's that easy.

4) Use the magic find feature. Click on the text of any item or sub item, and press Shift+Control+F. It's that easy.

A) If you seem to have trouble, (on some systems during initial use), try manually running a full file search (for anything), and then try the magic search feature again.

5) Use the shortcut key features.... try them out!

A) Control+Alt+I

B) Control+Shift+I

C) Control+Alt+Shift+I

D) Control-Q + Alt

E) Control-Q + Shift

F) Alt-Q + Shift

G) Shift+WindowsKey+T

H) ApplicationKey+Z

I) ApplicationKey+ "+"

J) ApplicationKey+ "-"

K) ApplicationKey+?



I. How to...

1) eccoMagic eXPressions

A) Easy to use: Simply use Ecco as usual !

1) To enter a date, simply enter the 'magic date' in the date field, and press Enter, Tab , Cursor Down, Up, etc., (as usual).

2) To use the old style date entry, press SHIFT+ENTER or click the green 'enter' box or outside of the date dialog box.

1) The key difference is with raw numbers. In old ecco style "3" means the 3rd of this month. In eccoMAGIC XP style, "3" means in 3 days from now.

2) Note: for internal reasons of Ecco Pro, the old ecco shortcut notation does not usually work in January.

3) To use the magic date feature in text (and list) boxes, enter the 'magic' date and press Control+Shift+Enter

B) Plus or minus a fixed time period, in days, weeks, months, years, or any combination

1) + is default and does not need to be entered

2) days is default, and does not need to be entered if you are only entering a simple +XXd entry

1) "45" = + 45 days

3) The time periods can be spelled out or abbreviated: days, day, d; weeks, week, w; years, year, y; months, month, m

4) Time periods can be combined such as "4y2m-5d" = 5 days short of 4 years and 2 months from now

5) Months ("m"), compute to the same day of the month, in the designated number of months. If the resulting month does not contain that number of days, the result is the last day of the result month. Months are added after computing any additional days or weeks. Ie. The first day of a month + 1 month = the first day of the next month, and the last day of a month + 1 month = the last day of the next month. (January 28, 29, 30, and 31 + 1 month all = Feb 28 in a non-leap year).

To add months before the addition of days or weeks, use a compound expression. (eg., "2m|3d", for 2 months from today, and 3 days from then, instead of "2m2d" which is interpreted as two days from now, and 2 months from then).

C) Time period can be based on Today (default) or upon any date you select

1) NOTE: the current year is assumed if omitted

2) "2/15 + 90d" = 90 days after Feb 15

3) "9/1/67 +21years2mos+15d" = 21 years, 2 months, and 15 days from 9/1/67

4) "3/18 -21d" = 21 days before 3/18

D) Today, Yesterday and Tomorrow

1) "Yesterday", or "yes" for yesterday, "Tomorrow" or "tom" for tomorrow

2) "Today", "tod", or "now" for today

3) Can be combined with other functions such as "1 week from yesterday" or "tom+1m" (one month from tomorrow)

E) Intelligent day of week entry

1) The day of the week selected is that day, eg. Tuesday, closest to the date entered, or to the current day, if no date, or date calculation is entered. Eg. if today is Wednesday, "Mon" will move back to the Monday of this week. "Thurs" will move forward to the Thurday of this week. To prevent moving backwards, use the "next" option. To force moving backwards use the "last" option:

1) Without any next or last designation, the day of the week results in that day of the week for the week in which the resulting date falls

2) "next sun" = "n su" = next Sunday

1) Eg. using this option with the first day of any month and the "-d" option, you can select the 1st, 2nd, 3rd, etc. occurence of day of the week in any month. For example, "9/1 -d nfri +1w" will always be the 2nd Friday in September

1) Note: You can easily create a memorized date for any date calculations you use often. For example, "<2ndFri>= -d nfri +w" will create a memorized date "[2ndFri]" that will always result in the 2nd Friday following any date. ("10/1/09 [2ndFri]"), or "<LFri>= m Lfri>", so that "[LFri]" will give the last Friday of any month, eg. "8/1 [LFri]" will give the last friday in August, "1/1/2030 [LFri]" will give the last Friday of Jan 2030.

3) "last sun" = "L sun" = last Sunday

1) Eg, using this option with the first day of any month, will result in the last such date in the proceeding month. Ie. If a meeting is held the last wednesday in march, "4/1 L wed" will be that date.

4) Note: These options work fully with computed dates. Eg. "12/14 +90d n mon" = the first Monday after 90 days following 12/14. Ie. if the computed date falls on a Monday, the next Monday will be selected. (To accept the computed date itself if a Monday, simply add " -d" to the expression)

2) Fully combinable with other dating options. To calculated from a specific day of the week, use the "this" option:

1) "18d next fri" = the first Friday after Eighteen days from today

2) "this fri 18d" = Eighteen days from this Friday.

1) "T fri" = count from Friday, instead of counting and then finding Friday

2) Can be combined with next and last options, eg. "this next Friday", or "TNFr"

3) Without the "this" option, the day of week is applied after any math computations. "nWed +30d" adds 30 days to today, and then finds the next Wednesday. It is understood as 'the first Wednesday after adding 30 days'.

4) The "this" option, reverses the meaning. the math is based on the particular day specified. Eg., "This nWed +30d" means '30 days from next wednesday'.

1) For example, "sun +2m" means 'the Sunday of the week on this date in two months', whereas "Tsun +2m" means 'two months from the Sunday of this week"

3) Full text, and abbreviations allowed: Monday, Mon, Mo, Tuesday, Tues, Tu, Wednesday, Wed, We, Thursday, Thur, Th, Friday, Fri, Fr, Saturday, Sat, Sa, Sunday, Sun, Su

4) Tip: If you want the date to FALL on a particular day of the week in a future month, use weeks instead of months as the computation. For example: "wed +5w" or "sun+10w" instead of "sun +2m". Months vary in length, so adding a month to a date, will usually change the day of the week upon which the date falls. In adding months, the day of the month set will, of course stay the same.

F) Intelligent month entry

1) Full text and abbreviations allowed: January, Jan, February, Feb, etc. Use directly in place of numbered month, or with year in standard notation:

1) "sep/8/2008", or "march 22/99"

2) "March 12, 2001" or "May 12 06"

3) "Sep 21 1942" or "Feb 21, 07"

4) even "3/19 '98" , "Feb12" , "12Feb" , "12Feb08" , or even "3/19'09"

2) If there are no date calculations, or if you seperate the date with the sequence seperator ("|"), you can use safely use Reverse date notation: "14 March", "11 Sept 2004", "1 dec 03", and "4Apr07". Note: this format is *not* recommended, but is recognized and works perfectly so long as there are no mis-entered date calculations in the expression, or the date is offset with the sequenced date seperator. Note also that there is no comma prior to the year, and the year must be either two or four digits ("2002", "02", but not "2").

1) 12 Sept 04 = 9/12/04, but note: 12 Sept 04 +1 = 12 Sept +5 = 17th of Sept.

2) Sept 12, 04 = 9/12/04 and sept 12 04 + 1 = 12 Sept +1 = 13th of september '04

3) "12 Sept 03| 3" = Sept 15, 2003

4) note: "12 dec 22", "12 dec 22 d" is set for 2022 (12/12 and 13/12), "12 dec 22d" is Jan of next year (ie. 12 dec + 22d). "12 dec 5" is 17th of december, "12 dec 05" is 12 dec 2005.

G) Intelligent day of month entry

1) The day of month is normally specified with a month, eg. "10/13", etc.. The "#" day of the month feature is designed for complex computations, or with memorized date expressions. Ie. Jan 10th is "Jan 10", or "1/10", and not "Jan #10".

2) "#" and a day number designates a specific day of the month for the resulting entry. For example, "#1" results in the entry being the first day of the resulting month.

3) Without any next or last designation, the day of the month results in that day of the month for the month in which the resulting date falls.

4) "next #14" = "n #14" = the 14th of the month following the resulting month.

1) Eg., "Jan 1 + 45d n#15" = March 15

5) "last #14" = "L #14" = the 14th of the month preceding the resulting month.

6) Fully combinable with other dating options. To calculated from a specific day of the month use the "this" (or "t") option:

1) "180d this #1 = 180 days from the first of the current month.

2) "180d next #1" = the first day of the month following the month 180 days from now.

1) Ie. without the "this" option, the day of month is applied after any math computations. "n#20 +300d" adds 300 days to today, and then finds the first of the next month.

2) or, for example, "3m#1" = the 1st of the month, 3 months from now.

H) Powerful business day only options

1) "b/bb/B" Sun-Fri, Mon-Sat, and Mon-Fri options

1) " b" for Sun-Fri

1) "+90d b" = 90 days from now, and skip to next day that is Sunday - Friday

2) " bb" for Mon-Sat

1) "+90d bb" = 90 days from now, and skip to next day that is Monday - Saturday

3) " B" for Mon-Fri

1) "2/1/05 +90d B" = 90 days from February 1, 2005 and to next weekday

4) note: a space, a comma , a plus, or a minus sign before the 'b','bb', or 'B' is mandatory

2) "$" user defined holidays

1) WinKey+Shift+Ctrl+O will load in the date settings located on the current item (where the cursor is) and all sub items, or if a block of text is marked within an item, the settings located only in that block of text.

2) WinKey+Shift+Alt+O will save the current set of holidays at the current outline item, or text column (where the cursor is).

3) if "$" is used, the "b" and "B" options are ignored. Ie. to include Saturday or Saturday & Sunday within "$" holidays, explicitly include them as seperate lines in the holiday list, eg. "Saturday" and/or "Sunday".

4) Because when using the "$" option, these days will automatically be skipped during all eccoMAGIC scheduling, strict form is important in your list. Note: Each exclusion must be placed on it's own line (either as a seperate item, or as a seperate line in a single item block).

5) Holiday list format:

1) Exclude particular days of the week

1) Sunday (or "sun")

2) Monday (or "mon")

3) etc.

2) Exclude particular months

1) January (or "Jan")

2) February (or "Feb")

3) etc.

3) Exclude particular days

1) 3/21/08

2) 6/18/09

3) etc.

4) (any valid date recognized by eccoMagic that contains some numbered component is allowed)

1) "3/11", "+2w", "tom +2d", "march 12", etc. will work

2) "tom", "wed", "next fri", etc. will not work to exclude particular days! "wed" by itself will exclude all wednesdays !!

5) To prevent accidental exclusions, the current date will not be excluded unless you precede the date with "[-]". This does not apply to extended time periods. Ie. If today is 2/4/05 and you want to exclude today from scheduling.... then enter "[-] 2/4/05" on a line in the exclusion list.

6) Note: exlusions can reference memorized dates. But be careful! Failure to use great care can lead to unintended blocked days. To use memorized dates, include "[+]" in the exclusion list line. Ex. "[+] [Thanksgiving]"

4) Exclude an extended period of days

1) 1/3/06 x20

2) 4/3/08 x15

3) etc.

4) (any date recognized my eccoMAGIC that contains some numbered component, followed by " x", and the number of days the 'holiday' continues for)

1) To help protect against accidental exclusions, pure text dates will not work, for example "tomorrow x20"

1) "+1d x20", will

5) Exclude days Annually

1) annual 1/3

2) annual Feb 15

3) etc.

4) (to avoid unintended exclusions, the word "annual" must be included in the line, or the date will be treated as a single occurence exlcusion). As with other exclusions any valid date recognized by eccoMagic that contains some numbered component is allowed.

6) Exclude computed days for a decade

1) annu 11/1 -d nTh 3w

2) annu 9/1 -d nMonday

3) etc.

4) "annu" will apply a computed date expression for the next decade.

5) To include additional decade's of computed holiday dates, simply add a line to your holiday list with +11y. Eg, "annu 11/1 -d nTh 3w" excludes 10 years of Thanksgivings, to exclude an additional decade, add a second line "annu 11/1 -d nTh 3w +11y".

7) Exclude extended periods of time Annually

1) annual 1/3 x21

2) annual 4/15 x7

3) etc.

4) ( the word "annual" and any date recognized my eccoMAGIC that contains some numbered component, followed by "x", and the number of days the exclusion continues for)

6) The settings are cleared when "_clear_" is loaded with the winkey+shift+ctrl+O function.

7) Examples:

1) Multi-level outline items and children are included in a WinKey+Shift+Ctrl+O load, so, by selecting <this> line as the base line for loading, both the 'Legal holidays' and the 'special family days' below will be loaded.

1) Legal holidays

1) annual Feb 14

2) annual 4/1 + 15days

3) annual dec 31 x3

2) Special family days

1) annual 8/14

2) 9/11/07

3) 2/10/08

4) 4/1/08 x60

2) As a single block item

(you can create with 'shift enter', [or by pasting using the eccoMAGIC original's 'shift-ctrl-v' function])

annual march 3

today + 21d

annual april 1

3) Use "-" in front of 'b','bb', 'B', or '$", to reschedule to non-business days prior in time to the desired date (which is not scheduled because it falls on a business day).

Eg. "B" will reschedule a date falling on Sunday to the next day, the following Monday.

"-B" will reschedule a date falling on Sunday to the preceding Friday.

1) Some deadlines are extended when they fall on a holiday, and thus the time for completion is expanded. For these, use "b","bb", "B", or "$".

2) For deadlines which are not extended when they fall on a holiday, the time for completion is shortened when the deadline falls on a holidy. For these types of deadlines use the "-" option in conjunction with the "b", "bb", "B", or "$" options.

I) Super Shorthand, or clear longhand

1) many combinations require only 1 letter, or a number or space and a letter.

1) "10" = 10 days from now

2) "3w" = 3 weeks from now

3) "#9" = 9th of this month

4) "nFr" = next friday

5) etc...

2) for example:

1) 1w1y1d = 1 week, 1 year, and 1 day from now

2) w mo = a week from monday

3) w = 1 week from now

4) 2/1/04+45 = 45 days from Feb 1, 2004

5) note: both the shorthand (left side) and the longhand (right side) of each example above will work

3) Advanced concepts in usage and abbreviation:

1) The system is designed to be intuitive. Hopefully we have succeeded. If you use what comes naturally for you, it should work. Just in case it doesn't, of in case of doubt, these are a few of the AI guidelines at work.

2) Upper and lower case and spacing are ignored in most instances except as follows:

1) For the "b/bb/B" business day option, case and spacing is relevant.

2) Spacing is relevant with 'hard dates' (ex. "2/11/22" is recognized as Feb 11, 2022, while "2 / 11 / 22" is not, "N tues" = "nTu", "2w 4d 4m" = "2w4d4m", etc. but, "1/11/01 2" is not the same as "1/11/012".)

3) Text following a day of the week, or 1st day of the month, must be preceded by a space, comma, plus or minus. Eg. "we d" = 'one day after wednesday', while "wed" = wednesday.

3) "+" is assumed, so that "+10d" = "10d", and "2w4y" = "+2w +4y"

4) if no hard date is specified (Eg., "10/1" is a valid hard date, and assumes the current year), the current day is understood as the starting point of the expression.

5) Days of the week can be spelled our, or abbreviated down to two (2) characters: SU, MO, TU, WE, TH, FR, SA

6) Months can be abbreviated down to three (3) characters: JAN, FEB, MAR, APR, MAY, JUN, JUL, etc.

7) Years, Months, Weeks, Days can be spelled out in the singular or plural, or by just the first letter: Y, M, W, D

8) To set on user defined non-holidays, the "$" may be used anywhere in the expression, without regard to spacing. The standard business days option (weekend avoiding), can be spelled out as "Business", or abbreviated as "Bus" or even "B", "bb", or "b" (as the case may be). Business day notation must be proceeded with a space, comma, or other segregation to clearly identify your intent to require a business day, and CASE is important. "Business" = Mon-Fri, "business" = Sun-Fri.

Note: "+20db" is interpreted as a mistyping of + twenty days, and is interpreted as such. Use "+20d,b" or even "B+20" if you intend business days only. (note, the engine uses extensive logic to interpret expressions, and understands that B+20 means "the next businessday after 20 days" [which longhand also works], because a unidentified number on the end is assumed to be days. (except where part of a hard date "10 11 01", any number standing alone is assumed to be days. However, if you include a raw number in a complex expression, and the number is not added on the end (or subtracted as the case may be), the AI often cannot figure out your intent, and may be confused. In complex expressions, recommended to identify days with a "d".

9) Ecco standard date format is the expected usage: M/DD/YY, however M/D/Y is also recognized, as is M/D with the year being the current year by default. Standard english notation: Month Day, Year is also recognized, eg. January 15, 1993, or Jan 10, 05 or even May 11 or 14 April, with the current year being default. MM-DD-YY is recognized but highly discouraged, as it leads to potentially complicated issues with the AI interpretation of meaning. -DD is the format for 'less DD number of days', and so the "-" date notation is strongly not recommended, and generally requires exact date formatting as in MM-DD-YY.

10) Inverted year dates "2003.5.22" are recognized and can be entered in shorthand with the year preceded by a ' character , eg. '03.4.21 .

4) D/M/Y vs. M/D/Y: Important concepts in language and date order:


The examples in the eccoMAGIC-XP instructions and the tutorials are based on the "M/D/Y" default settings. If your system is set for "D/M/Y", all the same rules and instructions apply, but as "D/M" in place of "M/D".

2) The base date format is either
M/D/Y or D/M/Y depending upon the current default Windows format, M/D/YY or D/M/YY, in conformity with the ECCO standard, ie. based on your system's setting. Please note that dates memorized on one setting do not automatically convert to the other: a memorized saved as "2/3/04" will be recalled as "2/3/04". If you desire to convert memorized dates to another date order format, save the settings to an outline, change them, and reload them.

NOTE: Holiday settings will function properly, in all M/D/Y settings, so long as the appropriate M/D or D/M setting was active when the holidays were loaded or reloaded. This allows you to manually override the M/D/Y ordering before loading a HOLIDAY list and then de-select the override to have the holidays function properly, in case you have a holiday list in the opposite M/D/Y format from your system's current settings. Of course, it is still best to manually edit and create a holiday list appropriate for your date format !!

Memorized dates are by their nature evaluated at the time they are evoked, whatever you have memorized is taken 'as-is' --> if your M/D settings have reversed, the memorized date from the reversed format will be reversed...

3) You may manually override the M/D/Y ordering by using the "Date order override" option on the tray menu

4) English is currently the only language option. If there is sufficient need and demand, languages can be added upon request/order. Because of the artificial intelligence, n-net pattern recognition engine designed into the program, language recognition of meaning and context is a significant programming task. If there is need and desire, we can do anything. Right now... it's ENGLISH ONLY! "Memorizing" alternative months for alternative languages may also be helpful in certain circumstances. For example, if March is memorized as "<m>", "[m]" will work the same as typing in the work "March", eg. "[m] 1, 2001" would be the same as "March 1, 2001"

J) Sequenced date expressions

1) Please note: date expressions are meant to be combined. For example "1w 10d 7y" is a single expression for 1 week + 10 days + 7 years from now. Sequenced expressions are not necessary for this, nor for most date calculations. "1w +3d -7w +9d" is a valid expression, and does not require the use of sequenced expression.

Similarly, Sequenced date expressions are not necessary simply because an expression is complex or compound. For example, the '3rd week after the 2nd sunday in october', can be expressed "10/1 -d nSun w +3w" and does not require sequenced date formulation.

For example, this expression works as follows: 10/1 minus 1 day is the last day of Sept. (Oct 1 minus 1 day). The next Sunday will therefore be the FIRST Sunday in October as there are no more days in Sept. if we are on the last day in Sept. Note, without the minus 1, we start on Oct 1. But if Oct 1 *is* a Sunday, the 'next' option will move us to the next, ie. second Sunday. To include the first day of a month when using the next option, start on the last day of the preceding month, or more generally, simply use -d as part of the expression. Finally, adding 1 week, gives the SECOND Sunday, and adding 3 weeks gives the 3rd week after that. (Adding of the 4 weeks could also be entered +4w, or simply "4w", instead of "w +3w". Either way is valid).

2) Sequenced expressions are appropriate and needed when a date expression involves two different days of the week, or to control how months are computed within an expression.

1) An expression can be sequenced by the use of "|". The sequences are calculated discreetly in the order listed.

2) Sequenced days of the week expressions:

1) 'the second friday following ten days from next wednesday' can be expressed "tnwe +10d | -d nFri w". First, adding 10 days to this next wednesday, then adding one week to the next friday after that.

3) Controlling how months are computed:

1) The default understanding of added or subtracted months, is that they are intended to be added or substracted after days and weeks are calculated. Ie. "+2mos +3days" is normally understood as meaning 2 months from 3 days from now. To express 3 days from 2 months from now, use the sequenced expression marker "|". Eg, "2m|3d".

3) Notes:

1) Any active default expression (the <*> function) will be applied to a sequenced expression only once at the end of all other terms.

2) Multiple memories can be set in a sequenced expression. Any memory ("<xxx>" or "<xxx>=") setting will be set with the section value for the section of the sequenced expression in which it is located.

A MEMORY CAN BE LOADED WITH A SEQUENCED EXPRESSION WITHIN THE MEMORY USING THE WINKEY+SHIFT+CONTROL+L FUNCTION. Ie. Enter a ecco item with the desired memory and sequenced expression, eg. "<mem1> TnSun +3d | n fri | 3m | n wed | 10 days" and with that item selected press WinKey+Shift+Control+L.

1) During entry of an sequenced expression into a date dialog, you record individual memories for each of the sections of the expression (eg. "<xxx> 2w4d|<xxx2> 3m"), not the entire sequenced expression as one memory.

While loading a sequenced memory expression (eg. "<xxx> nsun|2m|nwed") via WinKey+Shift+Control+L you can set one memory with the entire sequenced expression, but not individual memories for each of the sections.

1) Eg., the above example "<xxx> nsun|2m|nwed" will result in "[xxx] = nsun|2m|nwed" if loaded via the WinKey+Shift+Control+L function, and will result in "[xxx] = nsun" if entered in an Ecco date entry dialog.

K) Memorized dates

1) "}" at the start of an entry is equivalent to typing in the last date you entered

1) for example, you enter "2/14/09". On your next date entry, ">+2d" (or even ">2") would be 2/16/09.

2) the value of "}" changes each time you enter a date with eccoMAGIC. It's value is equal to the LAST eccoMAGIC date entered.

2) "}}" is equivalent to typing in the date entered before last and "}}}" to the date entered before that

1) When "}" "}}" or "}}}" are used, each memory is updated. Ie. entering "}}" as the date for multiple dates, will cycle between the date entered before last, and last date entered.

3) "<name>" saves the currently entered date into memory. Use "<xxxx>" to MEMORIZE.

1) "<>Feb 3+14d", "<trial>8/12/07", etc.

2) note: the name can be entirely empty or filled with any combination of letter, numbers and the underline symbol "_", but can NOT have ANY SPACES within the name iself.

4) "<name>= " saves the currently entered expression.

1) "<>= +14d", "<trial> [pretrial] + 30d"

1) In these examples, [] = "+14d" (not any particular date), and [trial] = "[pretrial] + 30d" (not a date).

2) As in the examples, expressions can be stacked.

3) if "<xxx>= +20d" then using "[xxx]" will give 20 days from today, or "3/2 [xxx]" will give 3/22. Notice that "<xxx> +20d" creates a fixed day (20 days from today) in [xxx], so that "[xxx]" will give 20 days from the date <xxx> was entered, not from the date [xxx] is used. Also, "3/2 [xxx]" would not be an understandable expression, as it would be merely listing two seperate fixed dates. (As opposed to a fixed date and a computational formula).

5) "[name]" is equivalent to the saved date. Use "[xxxx]" to USE a MEMORY.

1) if the saved date was Feb 17th, "[]-10d" would be Feb 7.

2) the value of [XX] only changes when you explicitly set it with the "<XX>" notation. It is set to whatever date value the last "<XX>" was used with.


"<*>" is a special memory, and saves everything to it's right as an automatic default which is then applied to every subsequent expression until turned off.

1) Please be careful
with this function.

2) (This function, unlike the "}" and other "<>" functions, does not need to start at the beginning of the date entry. Typically it is used near the end of the entry, before the options desired to be 'set' are entered.)

3) To turn off default date computation, simply include "<*>" at the end of an entered date.

If there is no term following "<*>", ie. everything else is to the left of "<*>", then no terms will be added to dates automatically. For example:

"+14d<*>$" enters two weeks from now, to the next business day, and sets "$" as the default date computation.

"3/2/09<*>" enters March 2, 09 as the date, and default date computation is turned off.

4) This feature, although it requires great caution, is very powerful and useful. A typical use is to set the default date computation to be "$", so that all dates will automatically be computed to avoid holidays, without having to enter "$" manually at the end of each date.

Note the default date computation does not apply to a wholly non-computed fixed date in standard format, eg. "2/22/09" or "02-10-2012", etc. (If you want to include, for example the "$" function with those 'hard' dates, simply add that to the entry, eg. "2/22/09 $")

5) The default expression function ("<*>") is not cumulative.

1) Eg., "2w<*>$", followed by "-10d<*>+1y" results in the default expression being "+1y".

6) Power examples:

1) "<*>-$" will automatically set all dates you enter to the first non-holiday no later than the date otherwise entered.

2) "<*>} +" will evoke automatic addition from the last entered date. Simply by entering a number, or "-" and a number, will move you forward or backward that number of days relative to the last entered date. (ie. all relative dates will be made relative to the LAST entered date, not relative to today.)

1) Incredibly useful for sequential task scheduling.

2) "<*>} +1w" will do the same, adding 1 week and any number (forward of back) of days (or weeks, months, years, etc) you enter.

3) "} $ +" the same, but also including the "$' holiday avoiding feature.

3) "<*>+3y" will make 3 years from now, the default year. "2/11" would be 2/11/10, etc. (if this is 2007). (Note: if you are using this type of default, entering a fixed date "2/11/01" will be computed without an additional 3 years!)

4) "<*>Nov" will make November of this year the default month. "10" would automatically be Novemeber 10.

1) "<*>+3y June" will make June 3 years from now the default month. "10" would be June 10, 2010 (if this is 2007), etc.

NOTE: You can use any computed period, or combined periods ("<*>+2y 3m"), but if you use a fixed month, it must be the last expression memorized as the default. Also, you cannot memorize a fixed year, only a relative year.

7) Stacking of saved memory expressions

1) Understanding saved dates vs. saved expressions

1) There are two types of memory. Memorized dates memorized expressions. Memorized dates cannot be stacked. Doing so would make no sense: ie. "3/4/06 5/6/12" is non-sense as a date expression.

2) You may freely use as many saved dates and/or expressions within any expression, anywhere, in any compound combination, and save the result as its own memorized date or expression.

1) If saved from a date dialog, the memories are not stacked, that is <xx>= [a] [b] [c] (where a = "d" b = "w" c = "y") results in [xx] = "d w y"

2) if loaded from your ecco file via WINKEY+SHIFT+CONTROL+L memorized expressions can contain multiple levels of stacked expressions. Ie. <xx> [a] [b] [c] loaded this way results in [xx] = "[a] [b] [c]".

3) The advantage of stacked memorized expressions is that you can easily modify one of the base expessions (such as [a]) and have all the expressions which have incorporated that expression also be automatically updated.

8) Compound memory expressions

1) Two memory expressions can be stacked as a compound memory by using a colon ":" to combine the two memories. For example, in one of the templates we have a memory "Succot" set for the year 2007, and a modifier memory "H8" to update the date to the year 2008. "[Succot] [H8]" works great, but [Succot : h8] is a whole lot easier to type in!

1) "[h8:Succot]" works equaly as well

9) Direct memory examples

1) Especially useful in moving around the calendar with F4. Using "}15", "}-10", etc. moves you back and forth based on the relative date (the date you are looking at on the calendar), not based on todays date!

2) Useful for stacked tasking. "}-2w" means 14 days prior the the last task. "}" is also a shorthand way to enter the same date...

3) "[xx]" allows entry of multiple dates all based on the same base date. For example, of 9/18/07 is the project completion deadline, you can memorize that as the base with "[pcd]", and then enter multiple dates based on that same date. (Final Review: [pcd]-20; Quality Control testing: [pcd]-90, etc.)

10) rules, syntax and notes:

1) The space inside the <>'s and the []'s can be entirely empty or filled with any combination of letter, numbers and the underline symbol "_", but NOT ANY SPACES BETWEEN THEM. Dashes are also minus signs, and therefore are not permitted in the name of the saved date. "[ ]" is not a valid entry (empty with spaces is not taken as a memory function). <> and [] are valid, as is [ deadline1 ], but not [dead line].

2) To use the last used date shorthand notation, it must be the first notation in the entry. "2d + }" will not work. "}2" or "}+2d" will.

3) The memorized dates are not just session based. When the eccoMAGIC program is closed, the memorized dates are not reset. You can force a reset of the memorized dates by entering "<_clear_>" with any date entry.

L) Saving and loading memorized date lists

1) WinKey+Shift+L will load in the date settings located on the current item (where the cursor is) and all sub items, or if a block of text is marked within an item, the settings located only in that block of text.

2) WinKey+Shift+Ctrl+L will perform the same function, but any relative date settings will be retained as relative date settings. For example: "<pretrial>[trial]-30d" "[trial]May 11" if loaded without the "Ctrl" key option, will result in absolute dates, [trial] = May 11, 2007 (or whatever is current year) and [pretrial] = June 10, 2007, ie. a fixed date. If loaded with the "Ctrl" key option, the memories are relative, [trial] = April 11 and the year will be filled in when the memory is referenced, [pretrial] = [trial] -30d , ie. when [pretrial] is referenced, it will lookup the then current value of [trial] and subtract 30 days.

1) You can stack memories. For example: "<step1> +7d", "<step2> [step1] +14d", "<step3> [step2] +2m". This will work both in the 'hard' and the relative import formats (ie. with or without the "Ctrl" key option).

3) EACH ENTRY must be on it's OWN LINE. For example:

1) <date1> 2/22/02

<date2> [date1]

+ 9m etc..

4) Win+Alt+L will save all current memories to your ecco outline. The List of entries is placed at the current cursor position in the outline. The entries are broken into blocks of 32 if there are more than 32 memories. Saved memories can be loaded with the date setting load functions. As the load functions load all sub-items, it is easy to have related saved memories listed in multiple sub items of a single item for easy loading.

5) "<_clear_>" in any load list will delete (clear) all memories. All items below the "clear" will be loaded as normal.

6) Memorized lists example:

1) Lawsuit deadlines

1) <trial>

2) <discovery> [trial] - 90d

3) <motions> [trial] - 45d

4) <witness_lists> [trial] -10d

5) etc.

6) used in Ecco as...

1) Case XXX

1) Draft motion for XXX -> [motions] -21d

2) Review witness lists -> [witness_lists] -10d

3) Confirm delivery of witness list -> [witness_lists] -5d

4) Set & Atten Pretial conference -> [witness_lists] -2d

5) Review elements & serve discovery set 2 -> [discovery] -35

2) note: simply loading in one memorized item, "<trial>" alllows scheduling with ease for as many key dates as you define in your date list. Changing that one item, "<trial>" allows you instantly to enter keyed tasks for another case. The "<trial> 3/3/08" can be a sub item or 'folder' entery for each case. You no longer have to think about calendar dates in scheduling. Merely set each task based on the relevant key date... and eccoMAGIC does the rest.

2) Business Non-standard Quartely periods

1) <Q1> April 15

2) <Q2> Aug 1

3) <Q3> Oct 15

4) <Q4> Jan 1 next year

5) etc..

6) Allows you to schedule tasks and deadlines based on relevant dates to you
, without the need to worry about, or even reference a calendar. ex:

1) Review sales reports -> [q1] -30d

2) Update P&L sheets -> [q1] -2w

3) etc.

3) Goal settings & Recurring Project day keying

1) Shelter Contstruction

1) <Completion>

2) Final out punch-list completions

1) <punch_comp> [completion] - 2w

3) Order punch-list work

1) <punch_order> [punch_com] - 21d

4) Walk thru & prep punch-list

1) <walk_thru> [punch-order] -1w

5) Electic & Walls

1) <electric_walls> [walk_thru] - 35d

6) etc...

7) allows..:

8) Studs & box placement [electic_walls] +4

9) sheetrock & rough plaster [electric_walls] + 12

10) Paint & Paper [electric_walls] + 24

11) etc...

M) Note on special places to also use the expressions


The expressions are helpful in:

keyboard date settings dialogs,

the recurring date settings custom limit dialog,

item info settings,


phonebook fields,

Gantt column setup,

Gantt date selection,

folder date assignments,

the calendar's F2 date access shortcut,

the "Review Alarms" week at a glance dialog, and

the F4 go to date (from anywhere).

2) Gantt date selection

1) In using Ecco rules for Gantt dates, it is often very useful to use the "}" last date memory feature. For example, in the start column you enter any date, ex. "1/2", then tab to the finish column (ie. do not use the Right arrow, as that will apply Ecco rules, not eccoMAGIC rules), and enter "} 30", and tab again (or press enter to also close the dialog). The finish date will be, in this example, set 30 days from the starting date. (It's that easy to use!)

2) In Gantt date selection, you can use the Right (right arrow) cursor (or Left), to enter the "Ecco rule" date, (eg. "5" for the 5th of current month), instead of the eccoMAGIC rules.

3) Review Alarms dialog

1) From within the Review Alarms dialog (Tools>Alarms>Review Alarms), simply add a "w" (for week, for example) at the end of the existing date, and press enter. "-w", "2w", etc. work as well. You can also delete the date and enter 'now' to return to this weeks' view. Pressing Enter without a date expression results in the normal ecco dialog behavior, ie. it closes the dialog.

N) NOTE: To access keyboard dates from the Calendar view, either enable a Column with the date field, press F2 to adjust the date, or use the eccoMAGIC control-alt-I shortcut.

1) Note:

1) Date entries with set time settings allow keyboard date entry only from within a Column or via 'F2'.

2) Keyboard Entry date fields from within Columns requires that the Folder properties to be set for Keyboard Entry. (Right Click on Folder for the Menu)

3) You can delete (or Clear the field) of a non-keyboard editable date field in a form view (such as the control-alt-I shortcut) to allow a 'one time' keyboard edit


More Examples & Templates:

1) Complex and scheduled group tasks: Outlined GANTT

1) For example, these project deadlines:

1) <Submit>

2) <testing> [Submit] - 30d

3) <assembly> [testing] - 2m

4) <QCreview> [assembly] -6m

5) etc.

6) in Ecco become...

1) Project X

1) Final submission -><Submit> 2/12/09

2) Test function 1 -> [testing] + 7

3) Test function 2 -> [testing] + 14

4) Review production of part 1 -> [QCreview]

5) Review production of part 2 -> [QCreview] + 2w

6) etc.

7) allowing INCREDIBLE power in setting otherwise complex date series

1) In addition the planned relative time setting periods can be supplament with entering memorized dates on-the-fly.

2) The key is the power of GANTT relative sequencing. But, in place of the more bulky visual chart of time periods to comprehend and adjust the relative sequencing of tasks, eccoMAGIC allows for scheduling directly based on relative sequencing.


(remember, once they are set, Tools > Move Item's dates can shift forward together some or all of the set dates for item in a project, simply by selecting them, and moving the dates with the Ecco tool)

2) Alternative dating and calendar entry

1) By creating a simple list of alternative month names, you can instantly create an alternative calendar entry system for Ecco. You can make the system as simple or as deep as you desire, for a single year, or multiple years if you choose. For example, you can set an alternative language or expressions for months (ex."<Mertz>March" loaded as a relative memory, allows using "[Mertz]" where you would use "March"). Ex. "[Mertz]/20/08", "[Mertz] 12, 2009", "3 [mertz]", etc.

2) Or, you can create an alternative calendar like one based on the lunar calendar system, such as the Chinese, or Hebrew systems. In this example, with one click on the "Hebrew Calendar for 2007" line, and pressing the 'Load" command, you instantly transform Ecco into a Hebrew Calendar friendly program for 2007. As with the open-ended power of Ecco, you can, within minutes, adapt this for any calendar system you desire.

1) This example is for a year at a time system-- very useful. But you can easily have a multi-year system. Simply name the months with a year designation such as <Tebet06>, <Tebet07>,<Tebet08>, etc.

2) Note: for compatibility, the dates listed for months should ONE DAY BEHIND the actual start of the month. eg. "Tebet" actually starts on 12/22/06. Since the months are not literal substitues for normal calendar months (as they point to specific days of the year and not a generic month), they are used, instead as "[Tebet] 1", or "1 [Tebet]", or with computation with "[Tebet] 1d + 90d". So, since day 1 of the month is 1 and not zero..... set the memorized month names 1 day before the month actually starts in the calendar.

3) How to use the templates

1) To use a memorized date template, simply select the top level of the template or template subpart desired, and press WinKey+Shift+L. (In the Hebrew Calendar example, by simply changing the date for Tevet, the template can be used in 2008, 2009, etc. Note: The date set is one day before
the actual start of Tevet. (This is so the expression "[Tevet] 1", etc., will be equal to the first day of Tevet.)

2) To use a holiday template, select the top level of the template or template subpart desired, and press WinKey+Shift+Control+O. Templates, such as the US Legal Holidays example , automatically adapt to the current year, so to reload the template in one year, simply reload it with the WinKey+Shift+Control+O sequence, and the dates are automatically added based on the new year. Note: most of the sample template dates are set "annu", which sets the dates as holidays for the next decade. New Year's day, Independence, etc. are set forever, "annual".

4) MEMORIZED DATES TEMPLATE: Hebrew Calendar for 2007 (and holidays 2008-2011)

1) Note:

( use sequence for 08-11. eg., "[Pesah] | [H8]" for passover 2008 )

The Hebrew calendar is not a true lunar calendar. In some years

an extra day is added/removed from select months, generally Kislev and Heshvan,

and is *not* reflected in the sequence year 'addtion' in this example.

This type of memorized date is intended for 'current' date entries, ie. for the current year, with

the date of 'Nisan' and any leap day correction, to be done each year. Ie. "[Elul]" will allways

be the current "Elul" with this method. The sequence HX date for future years

works correctly for the holidays, and the first 8 months.)


<Nisan> 3/19/07


<Pesah>15 [Nisan]


<Pesah2>21 [Nisan]




<Sivan>[Iyar] +29d




<Av>[Tamuz] +29d


<TuBAv>15 [Av]


<Elul>[Av] +30d


<Tishri>[Elul] +29d


<HagTruah> 1 [Tishri]


<Kippur> 10 [Tishri]


<Succot>15 [Tishri]


<Succot8> 22 [Tishri]


<Heshvan>[Tishri] +30d


<Kislev>[Heshvan] +29d


<Tevet>[Kislev] +30d - 1d


<Shevet>[Tevet] + 29d


<Adar>[Shevet] +30d

14) <Adar2>[Adar] +30d






16) Sample Memorized Hebrew Holydays (same rules every year as based on lunar system dates)

1) <Pesah> 15 [Nisan]

2) <Pesah2> 21 [Nisan]

3) <TuBAv> 15 [Av]

4) <Succot> 15 [Tishri]

5) etc..

5) MEMORIZED DATES TEMPLATE: Hebrew Calendars for 2008-2011


( example of another way to use memorized dates with the year included in the month

as in "[Nisan08]" to allow the leap 'day' correctly changed for Kislev, etc.

You can 'memorize' an unlimited number of years this way. The Hebrew calendar

repeats every 19 years, so that a sequence "+19y" can be used for years

past 19 years from the first year's memorizations. )

2) 2008

1) See 2009 for note on how to create new years in under 45 seconds...


<Nisan08> 3/19/07 + 1y17d


<Pesah08>15 [Nisan08]


<Pesah208>21 [Nisan08]




<Sivan08>[Iyar08] +29d




<Av08>[Tamuz08] +29d


<TuBAv08>15 [Av08]


<Elul08>[Av08] +30d


<Tishri08>[Elul08] +29d


<HagTruah08> 1 [Tishri08]


<Kippur08> 10 [Tishri08]


<Succot08>15 [Tishri08]


<Succot808> 22 [Tishri08]


<Heshvan08>[Tishri08] +30d


<Kislev08>[Heshvan08] +29d


<Tevet08>[Kislev08] +30d


<Shevet08>[Tevet08] + 29d


<Adar08>[Shevet08] +30d

3) 2009

1) Note: this was created in under 45 seconds by simply COPYING (Ctrl+C) from the above

list, and pasting here (Ctrl+V), simply replacing the starting date differential "1y17d"

with "2y+6d" and adding the +1d for the leap month day. The names were changed

with a find and replace (eg. "09" replaced with "09") by (1) marking the header 2009 item

with ctrl-M (as done), doing an Edit > Find/Replace , current view, item text, and using

a filter > Custom > Done equals today > REPLACE ALL and then, Ctrl-M > delete (the

date) on the header 2009. [using the filter makes sure the 08's are changed only in this



<Nisan09> 3/19/07 + 2y+6d


<Pesah09>15 [Nisan09]


<Pesah209>21 [Nisan09]




<Sivan09>[Iyar09] +29d




<Av09>[Tamuz09] +29d


<TuBAv09>15 [Av09]


<Elul09>[Av09] +30d


<Tishri09>[Elul09] +29d


<HagTruah09> 1 [Tishri09]


<Kippur09> 10 [Tishri09]


<Succot09>15 [Tishri09]


<Succot809> 22 [Tishri09]


<Heshvan09>[Tishri09] +30d


<Kislev09>[Heshvan09] +29d + 1d


<Tevet09>[Kislev09] +30d


<Shevet09>[Tevet09] + 29d


<Adar09>[Shevet09] +30d

4) 2010


<Nisan10> 3/19/07 + 3y-4d


<Pesah10>15 [Nisan10]


<Pesah210>21 [Nisan10]




<Sivan10>[Iyar10] +29d




<Av10>[Tamuz10] +29d


<TuBAv10>15 [Av10]


<Elul10>[Av10] +30d


<Tishri10>[Elul10] +29d


<HagTruah10> 1 [Tishri10]


<Kippur10> 10 [Tishri10]


<Succot10>15 [Tishri10]


<Succot810> 22 [Tishri10]


<Heshvan10>[Tishri10] +30d


<Kislev10>[Heshvan10] +29d + 1d


<Tevet10>[Kislev10] +30d


<Shevet10>[Tevet10] + 29d


<Adar10>[Shevet10] +30d


<Adar210>[Adar10] +30d

5) 2011


<Nisan11> 3/19/07 + 4y16d


<Pesah11>15 [Nisan11]


<Pesah211>21 [Nisan11]




<Sivan11>[Iyar11] +29d




<Av11>[Tamuz11] +29d


<TuBAv11>15 [Av11]


<Elul11>[Av11] +30d


<Tishri11>[Elul11] +29d


<HagTruah11> 1 [Tishri11]


<Kippur11> 10 [Tishri11]


<Succot11>15 [Tishri11]


<Succot811> 22 [Tishri11]


<Heshvan11>[Tishri11] +30d


<Kislev11>[Heshvan11] +29d


<Tevet11>[Kislev11] +30d


<Shevet11>[Tevet11] + 29d


<Adar11>[Shevet11] +30d


HOLIDAY TEMPLATE: US Legal Holidays (for "$" business day only holiday date skipping)

1) US Federal Holidays

1) Thanksgiving

1) annu 11/1 -d n thurs 3w

2) annu 11/1 -d n thurs 3w +11y

2) Martin Luther King's Birthday

1) annu 1/1 -d n mon 2w

3) Washington's Birthday

1) annu 2/1 -d n mon 2w

4) Memorial Day

1) annu Jun 1 L mon

5) Labor Day

1) annu Sept 1 -d n mon

6) Columbus Day

1) annu Oct 1 -d n mon w

7) New Year's Day

1) annual January 1

8) Independence Day

1) annual July 4

9) Veterans Day

1) annual November 11

10) Christmas Day

1) annual December 25

2) US Federal Election Day

1) annu Nov 1 n tues

2) ApplicationKey file view safe switching

A) The applicationkey looks like a box with lines and a small cursor. It is meant to represent a pulldown box and is included on all fully compatible windows keyboards.

B) When multiple files are opened (and not closed) in ecco, pressing the applicationkey and ? together will bring up a menu of all open files. The function is simular in operation to clicking on the "Files" button in the lower right of the screen. The arrow keys will move the "Files" selection up and down, and space or enter will select any file. Escape will close the file selection box without making any selection.


C) Pressing the applicationkey with a number 1 - 9 will bring up the corresponding file (one being the topmost in the list) into the ecco pane. (Note: switching file panes does not 'record' changes. Only changing focus from an item will 'record' changes on that item. When you switch back, you are returned to exactly the position you were in when you left.)

This feature is enabled for windows systems such as XP and Vista. The feature is not designed for older windows systems. eccoMAGIC XP is designed to bring Ecco into the future. If there is substantial and sufficient need and demand for alternative coding to work in older systems, we can add work-around support for this feature in windows 95, 98, ME, etc.

3) Control-Alt-F full context (& duplicates) automated search

A) Select any entry (for example in the Calendar view) by clicking anywhere on the line you want to find, press Ctrl-Alt-F and.. *magic* the full text of that line from that item is brought into a whole file search

1) This command allows easy reattachment of the context of 'floating' items and easy gathering of all duplicate items within your file

2) With one press, the entire line is marked, searched, and shown

B) Click anywhere on the text line, then press ctrl-alt-F

1) Instantly you see the context

4) Ctrl-Shift-Q time paste +

A) Pastes the time, as in "11:52p "

B) Control-Shift-Q-W will insert a short date

C) Control-Shift-Q-E will insert a long-hand date

5) Ctrl-Alt-Q longhand date paste

A) Pastes the long-hand date, as in "December 25, 2006"

6) Shift-Alt-Q short date paste

A) Pastes the date, as in "12/10/06 "

7) ApplicationKey + "+" RTL text re-order, screen cleanup, and color mask restore

A) Orders to current position, RTL texts in input edit.

B) Restores original coloring to the entire ecco screenshot after a reverse mask.


This feature is enabled for windows systems such as XP and Vista. The feature is not designed for older windows systems. eccoMAGIC XP is designed to bring Ecco into the future. If there is substantial and sufficient need and demand for alternative coding to work in older systems, we can add work-around support for this feature in windows 95, 98, ME, etc.

8) ApplicationKey + "-" screenshot reverse mask

A) Technically not a shortcut key, but in practical sense a shortcut key to mask the screen in 'reverse' . Any changes/editing/movement will not be reversed, and ApplicationKey + "+" will clean up after application of the reverse mask. Ie. marking or selecting (without scrolling or entering new items) produces a reverse-reverse. Any new lines (and all lines under them) are un-reversed.

9) WinKey-Shift-T toggle Ecco Title bar

A) Frees up valuable screen space and restores the 'XP' look to ECCO

B) To move ecco while the Title bar is toggled off, use CAPSLOCK + LEFT CLICK DRAG (ie. held down while moving) to move the Ecco window

10) Capslock Drag Ecco

A) use CAPSLOCK + LEFT CLICK DRAG (ie. held down while moving) to move the Ecco window.

B) you may left click and drag from anywhere in ecco's window

11) Ctrl-Shift-I form entry shortcut

A) Bring up the primary (first in list) FORM entry dialog

B) NOTE: If you have a primary form that you use in various outlines, simply move each to be the 'first in list' with the Tools > Manage Forms > Reorder function (for each outline).

C) The shortcut works regardless of the name of the form

D) Using this shortcut powerfully requires a one-time setup of a primary form for each outline.

1) Tools > Manage Forms gets you to the form management dialog

2) Add the key fields that you use to control the key aspects of your intems

3) After saving the form, move the form to be the first form in the list

4) This does not have to be the form you use for your phone book

12) Ctrl-Alt-Shift-I form apply shortcut

A) Shortcut to modify multiple items based on the primary (first in list) FORM

13) Ctrl-Alt-I item properties shortcut

A) Allows instant and powerful access to the exact folder settings for any item

14) Ctrl-Alt-R repeating date fix

A) With one (or more) items selected, press Ctrl+Alt+R.

B) Any repeating dates set to end today will be updated to 2049 for the selected item(s) and any sub-items.

C) One click repeating date fix

1) The 'old fix' (was standard fix prior to version 2.7, although you can still use this if it works well for you)

2) Dates repeat to 2039.

1) If you desire a shorter recurrence period, instead of using the "one-click" repeating date fix, simply select the Recur button on the ecco date dialog, choose "Custom...", and then manually fill in the "Until:" period.

3) True "one click" fix from within the Ecco "Date Setting Dialog", or from the selection box of any date.

4) From within the "Date Setting Dialog", first set the recurrence with the "Recur" tab and then
simply SHIFT left-click on the "Recur" tab.

To fix the recurrence date and to close the date setting dialog, you can press shift-alt-R (from within the date setting calendar dialog).

To fix a recurring date without going to the date setting dialog, (obviously, to fix a recurrence pattern the date setting must already have a recurrence pattern set), simply SHIFT left-click on the down arrow tab which appears next to the date field. (When activated all date fields in columns and forms show this 'arrow' or little triangle).

1) Again:

1) From within the date calendar dialog

1) Simply SHIFT-CLICK on the Recur box after you have set or selected your Recurrence period

2) Or, simply press SHIFT+ALT+R after your Recurrence period has been set

2) Or, from the date field prior to envocation of date calendar dialog box, for dates which have already been set with some repeating period (which could be automatic as part of the folder definition for that date type)

1) Simply SHIFT-CLICK on the down arrow (triangle) next to the date field. If you don't see a triangle you should click on or move to the date field to activate it. ( Date fields in the calendar view activate directly to the calendar dialog box. )

5) The fixed recurrence is internally verified for 100% assurance and security. If for any reason the ending date of the recurrence (ie. the 'fix'), cannot be verified (which can happen in various unusual circumstances, including issues with language selection, processor delays, irc and some dll call or hook conflicts, and the like), the custom recurrance properties box will opened and left open for review and manual correction, and/or you will hear a repeated "beep".

If this occurs simply fix the "Until:" date manually (to any date in 39, eg. 1/1/39), and press enter. If this ever does occur to you, please report to us, as best you can, the circumstances under which this occured.

15) ApplicationKey + Z magic screenshot & erase

A) A feature that at first may raise questions of 'why do I want this ?', eventually can fully appreciated when you really need it. Reverses the colors of the ecco panes and highlights the section of any item being edited. Marking or selecting (even with scrolling or entering new items) produces a reverse-reverse. Edits are highlighted with a non-reverse.

B) "Change your perspective -- see something new." Makes text *amazingly* more clear to read and focus on. By changing your 'default' and 'automatic' view of what you are seeing, the reverse view slows down your automatic input of the information before you, and gives the information a new and different perspective from which to be seen. This feature is not for minute-by-minute use, but when needed, is *VERY* useful in gaining a new or fresh perspective on items looked at 'so many times', they're no longer really seen.

C) May be conbined with the screenshot reverse mask (use "Z" and then "-")

This feature is enabled for windows systems such as XP and Vista. The feature is not designed for older windows systems. eccoMAGIC XP is designed to bring Ecco into the future. If there is substantial and sufficient need and demand for alternative coding to work in older systems, we can add work-around support for this feature in windows 95, 98, ME, etc.

16) Taskbar Options

A) Left click on taskbar icon for Function Quick Reference

B) Right click on taskbar icon for:

2) Turn eccoMAGIC XP on and off ("Active")

3) Exit from eccoMAGIC XP ("Exit")

4) Save Current Dates & Holidays

1) Saves the current holidays and date memories.

(Note: this is done automatically upon exiting eccoMAGIC XP)

5) Recalculate Holiday Dates

1) If any holiday dates are relative dates (such as Jan 1 [which changes to a new date every year, eg. Jan 1, 06, Jan 1, 07, etc.], or such as today +10d, or based on memorized dates such as [quarter1] + 10d, etc.) the holiday is recalculated based on current day and current memory date settings.

2) Note: Holidays are loaded as fixed dates, and not normally or automatically recalculated at startup.

6) Restore Startup Dates

1) Cancels all date and memory date changes made during the current session (since loading eccoMAGIC XP).

7) Date order override

1) Force M/D/Y order

2) Force D/M/Y order

3) (no selection)

1) This is the default setting for normal use. Uses standard system settings for your system.

4) note:

1) The dates are stored in the currently default Windows format, in conformity with the ECCO standard. ie. M/D/Y or D/M/Y depending on your system's setting. Please note that dates and holidays memorized or set on one setting do not automatically convert to the other: a date saved as "2/3/04" will be entered as "2/3/04". If you desire to convert saved/memorized dates, to another date order format, save the settings to an outline, change them, and reload them.

2) You may manually override the M/D/Y ordering by using the "Date order override" option on the tray menu, but this override will *not* affect Ecco's settings, and will produce likely undesired results if the two are not in sync. To change Ecco's date mode, change the Window's short date format (usually in the control panel's region and language settings tool).

3) Overriding is useful to load in holidays and memorized dates, which were saved on another system with different date ordering.

17) WARNING: We have built in extensive safety feature, for example, actually reading the contents of the data field to verify recurring dates are actually being 'fixed', but we make no representations, promises or guarantee about use or accuracy : USE THE PROGRAM AT YOUR OWN RISK. The software is provided AS-IS, with no warranties, and to the extent allowed by law, with no warranties of merchantability or fitness for use.

A) WARNING: Some features, including the item properties shortcuts can be used to freeze an ecco32 thread if invoked abusively. eccoMAGIC XP has been extensively tested, and coded to prevent the intentional abuses we could think of, but creative minds will surely think of ways we have not.

B) NOTE: eccoMAGIC XP is designed to work with the 32 bit 4.01 version of Ecco Pro. Some functions may not work for you on some Windows '95, '98 and some NT systems, depending on the particular system's build.

18) Revision history:

A) 2.70B - Speed improvements; Ctrl-Alt-R repeating date fix method added.

B) 2.62B - Fix bug in compound memory computations. Addition of shorthad compound memory [ memory : modifier ] for dates such as [ succot : h8].

C) 2.56B - Alternate date/time shortcut entry shortcuts added. Code modifications in shortcut code for greater system compatibility.

D) 2.51B - European date recognition engine added. Date order override option added. Revised integration of sequenced and memorized dates, memorized dates sequences fully activated, triple deep 'instant' memorization retention algorithm added. Alternate date entry formats activated (inverted year "2010.10.31" and " '03.02.18 ", dual mode month/day "June 21" and "21 June").

E) 2.15B - Tightening of ecco interface code, expression logic improvement.

F) 2.12B - Code optimization, expression logic improvements, cleaner code for file key (appkey+1-9) file activation shortcuts eliminating ecco resource failure errors

G) 2.08B - Additional support for Alarm Review.

H) 2.06B - Replace Win+Ctrl+Q shortcut with Alt+Shift+Q.

I) 2.05B - Tutorial enhancements. Multi-year Hebrew calendar examples added, memorized date and holiday list loading and saving to .eco file enhanced.

J) 2.04B - Coding enhancements, ApplicationKey reassignments to + and -, magic screenshot color erase made 'sticky', some relational date logic recoded, paypal alternatives added.

K) 1.97B - Multi-day holiday tag changed from # to "x", # day of month option added, +m no longer rolls on shorter resulting month, "annu" decade holiday feature added, sequencing feature added.

L) 1.96B - addition of tutorials in .eco documentation, fix of day-of-week logic so day-of-week in expression now always results in a that day-of-week (unless bumped by business day option), added "}}" and "}}}" 2 and 3 stage lookback memories, adaptation of function flowchart for visually impaired, added US Federal Holiday template.

M) 1.88B - fix of AI logic for nested memories, fix of +0days feature. some default date computation feature additions, such as enabling relative date sequencing.

N) 1.84B - addition of default date computation function.

O) 1.80B - improved coding and security checks for magic dates. Full integration of memorized & holiday date saving and loading. Additional date logic for month names.

P) 1.79B - beta testing of magicdate near completion, MagicDate code moved to full integration with ecco32 core. Shift-Enter for old style ecco dates. Improved speed integration with ecco32 code structure, for recurring date fix. Small speed improvement for context search results. Addition of long-hand date short-cut.

Q) 1.77B - addition of magic date named memories and last used date function. Recode of interaction with forms. addition of user defined business dates, preceding date settings.... and so much more..

R) 1.76B - addition of last and saved dates. addition of help screen

S) 1.75B - recode of full context automated search's ecco main code interface. Faster, and much, much, much more stable. Small improvement to shift+ctrl+Q time only macro.

T) 1.74B - recode of subcode for the recurring date interconnection with ecco. Faster, more secure.


I. eccoMAGIC XP Function FlowChart


II. End User Agreement

We are transmitting or delivering to you a copy of our software, similar to if we were transmitting or delivering to you a copy of a radio show. We own the original program, as an entire work, including but not limited to the coding, text, html, images, graphics, layout, design, and look and feel, all of which are COPYRIGHT by us, and all rights to which are retained by and RESERVED by us. Similarly, the source code including any and all parts which are based on our trade secret or any patented or patent-pending technology, are retained by us, and your right is limited to a right to use the object code distributed to you. You agree not to look under the hood, and to keep fully secret and confidential, even from your own eyes, all internal processes of the program.

We grant you, and only to you, the right to use, for either a single user on as many machines used exclusively by that user, or for a single machine with multiple non-remote users. You may, of course, make reasonable backups of the program, if kept securely by you, and not in such a way that others might have access or the opportunity to copy or steal the program from your backups.

You are authorized to re-transmit or copy the program for your own use, from a fixed media to another fixed media or to local RAM of your machine, in order to use the program in an ordinary fashion. You are not authorized to modify, crack, or hack the program. Application or implementation of any modification, crack, or hack, is a violation of this end user agreement, and a violation of the program's copyright.

The the full extent permitted by law, no warranties are made, and the software is transmitted "as-is". Use of this software has not been tested by us on your individual machine or circumstances, and you acknowledge this and you agree to assume all risk of use. No warranty of fitness for use, and no warranty for merchantability are made by us, and ALL IMPLIED WARRIENTIES are, to the extent permitted by law, fully disclaimed by us. To the extent permitted by law, the limitations of remedies for any breach of warranty is limited to replacement of the software, or refund of the purchase price, at our exclusive option.


This product is distributed "AS-IS".


Please report any comments, suggestions, bugs, or problems to:



Copr. 2006-2009. ECCOMAGIC. All Rights Reserved.