Timepiece - Time in Status for Jira

Dynamic Date Expressions

Overview

The startDate, endDate, trimHistoryStartDate, and trimHistoryEndDate parameters now accept dynamic date expressions in addition to static ISO-8601 date strings. Dynamic dates are evaluated when the report runs, using the execution time and the user’s Jira timezone. This means a saved parameter set using dyn::thismonth_start will always resolve to the start of the current month, not the month when it was saved.


Note: This is a backwards-compatible, additive change. Existing ISO-8601 date strings continue to work without modification. The API version has not changed.


URL Encoding

Dynamic date expressions are plain-text strings. All endpoints accept parameters via URL query string (GET) or application/x-www-form-urlencoded body (POST). Both encoding schemes treat a bare + character as a space, not a plus sign.

This matters for compact offsets that use an explicit + sign (e.g. +3mo, +2d).

Recommended approach: omit the + sign. It is optional — positive offsets without it work identically:

Avoid (breaks in query string)

  • dyn::now::+1h

  • dyn::thisquarter_start::+3mo

  • dyn::now::-3w+2d-1h

    Use Instead

  • dyn::now::1h

  • dyn::thisquarter_start::3mo

  • dyn::now::-3w2d-1h

If you must send an explicit +, percent-encode it as %2B.

The :: separator colons and the - sign in negative offsets are URL-safe and do not require encoding.

Format

dyn::<anchor>[::compact-offset]

Parameter

Description

dyn::

The prefix marks the value as a dynamic expression.

<anchor>

It is a named calendar point (see table below).

::compact-offset

It is optional and shifts the resolved instant by a signed amount.

Anchor Reference

Anchor

Resolves To

now

Current instant

thishour_start

Start of the current hour (HH:00:00)

thishour_end

End of the current hour (HH:59:59)

today_start

00:00:00 of today

today_end

23:59:59 of today

yesterday_start

00:00:00 of yesterday

yesterday_end

23:59:59 of yesterday

thisweek_start

00:00:00 of the first day of this week*

thisweek_end

23:59:59 of the last day of this week*

lastweek_start

00:00:00 of the first day of last week*

lastweek_end

23:59:59 of the last day of last week*

thismonth_start

00:00:00 of the 1st of this month

thismonth_end

23:59:59 of the last day of this month

lastmonth_start

00:00:00 of the 1st of last month

lastmonth_end

23:59:59 of the last day of last month

thisquarter_start

00:00:00 of the first day of the current quarter

thisquarter_end

23:59:59 of the last day of the current quarter

lastquarter_start

00:00:00 of the first day of last quarter

lastquarter_end

23:59:59 of the last day of last quarter

thisyear_start

00:00:00 of January 1st of this year

thisyear_end

23:59:59 of December 31st of this year

lastyear_start

00:00:00 of January 1st of last year

lastyear_end

23:59:59 of December 31st of last year

* * Week start day is determined by the Jira instance's date picker setting (jira.date.time.picker.use.iso8061): if the ISO-8601 date picker is enabled in Jira, the week starts on Monday; otherwise it starts on Sunday. For requests made via the Connect on Forge REST API, this setting cannot be read (it requires a Forge OAuth token), so the week always defaults to starting on Sunday.

Compact Offset Format

An optional offset shifts the resolved anchor. Tokens are concatenated with no spaces. Each token is [+|-][N][unit] where the sign is optional for positive values (e.g. 1mo and +1mo are equivalent).

Unit Symbol

Meaning

Maximum absolute value

y

Year

10

mo

Month

120

w

Week

520

d

Day

3650

h

Hour

5000

Multiple units can be combined in a single offset string (e.g. -3w2d-1h). Each unit may appear at most once.


Notes

  • All resolutions use the requesting user's Jira timezone.

  • For month and quarter *_start / *_end anchors, any month or year offset is applied at the calendar period level before recomputing the boundary.
    Example: dyn::thismonth_end::-1mo on April 30 resolves to March 31 (end of March), not March 30.

  • Week, day, and hour offsets are always applied directly to the resolved instant (no period-first treatment), for all anchor types.

  • Static ISO-8601 date strings (yyyy-MM-dd or yyyy-MM-dd hh:mm) continue to be accepted as before.


Examples

Expression

Meaning

dyn::today_start

Start of today (no offset)

dyn::thismonth_end

End of this month

dyn::lastquarter_start

Start of last quarter

dyn::now::-1h

1 hour ago

dyn::today_start::-1d

Start of yesterday (same as dyn::yesterday_start)

dyn::thisweek_start::-7d

Start of last week (same as dyn::lastweek_start)

dyn::thismonth_start::-1mo

Start of last month (same as dyn::lastmonth_start)

dyn::thisquarter_start::3mo

Start of next quarter

dyn::thisyear_end::-1y

End of last year

dyn::now::-3w2d-1h

3 weeks and 1 hour ago, plus 2 days