Contract automation and calculating a date, taking into account holidays

Calculate a date (and take into account holidays)

In the Weagree contract automation wizard, it is possible to produce a date into the contract text, based on a calculation. For example, you can automatically ‘calculate’ what a contract’s termination date is (and insert it into the contract) by using the effective date + 365 days (presuming the effective date is a known date).

Such calculation operates with the datecalc-tag (examples are below). The datecalc-tag must contain all variables as are necessary to calculate and produce the required date. The variables may be Q&A-answers.

The following variables can be used to calculate a date:

Reference dateThis is the reference for the calculation – in the above example, that would be the effective date – the ‘date’ would be asked to the user (e.g. [date.Effective Date] )
NumbersA number (or calculated number) indicating how many days, weeks, months, etc. are to be added or subtracted
Operators+ or –

It indicates that such number of days, weeks, etc. must added or deducted to the reference date (calculations can be ordered and sequenced as in calc-tags by using round brackets, and operators also include dividing, multiplying or taking root, exponentials etc., if necessary).

Units of time:Days




Note that the units of time are always plural (so “+1 Months”) and, regardless of the template-language, always in English.

If that would be relevant, the calculation may of course also contain other operators (e.g. taking the exponent or square root, or dividing or multiplying parts of the calculation).

If the date calculation involves business days, (also) other variables come into play:

Units of time:BusinessDays



A countryFor taking into account public holidays, the relevant country must be known. The country can be derived from a Q&A (country) question. If no country is specified, the country defined for the Own party will apply. Check with Weagree if the public holidays and business days for a particular jurisdiction are available and maintained on your portal.

All of the above variables can be hard-coded in the datecalc-tag or be derived through a Q&A question. Such Q&A questions can be both ‘local’ and ‘global questions’, and require user-entered data, steered by a choice-question or a combination. One condition: a user-entered factor must be a numeral (e.g. not “ten” but instead “10”).

Currently implemented following grammar that results in a <date-expression>:

< jurisdiction > < a date > + or – < number expression > Days/Weeks/Months/Years/BusinessDays

PreviousBusinessDay / NextBusinessDay <date-expression>

Examples datecalc-tags:

Automatically calculating the expiry date of the contract: being 52 weeks after the starting date, less one day:

[datecalc.Expiration date.([date.Effective Date of the contract] + 52 Weeks – 1 Days)]

Automatically calculating the last day on which a termination notice can be sent:

[datecalc.Last date for termination notice.(PreviousBusinessDay ([gq.Expiration date] – 1 Months) )]

Automatically calculating the day on which an exclusivity period ends:

[datecalc.End exclusivity period.(NextBusinessDay [gq.Effective Date] + [edit.Post expiry notice period] Days)]

Automatically calculating the first business day that an instalment payment must be satisfied:

[datecalc.Instalment 2 payment date.(NextBusinessDay [gq.Instalment 2 date] )]

Automatically calculating the working day on which a payment has to be satisfied in respect of a German supplier – for example to be ten business days (taking into account public holidays in Germany) after a given date:

[datecalc.Payment German purchase price.([country.Business Days in countryname], [edit.Payment Date 1] + 10 BusinessDays)]

Automatically calculating the ultimate date on which delivery of goods must be in, but allowing for a grace period of a Q&A-chosen number of weeks:

[datecalc.End of grace period.(NextBusinessDay ([date.Ultimate delivery date] + [edit.Grace period in weeks] Weeks) )]

In many cases, you will convert the (local) Q&A date-question (e.g. asking for the Effective Date) into a global question, since you will probably need that (effective) date both mentioned itself and being used in the calculation (to produce another date).