Groupi Date Language (GDL)

A shorthand syntax for quickly entering complex date and time options. Type GDL directly into the date input field — it'll be detected automatically.

Symbols

@
AtAttach time to a day or date
-
SpanEvent from start to end time
^
DurationDuration from start (e.g., ^3h, ^90m)
+
CombineUnion of multiple entries
[ ]
ListSpecific items: [Tu,Th] or [18,19,20]
( )
RangeExpand start to end: (Mo,Fr) or (18,22)
*
RepeatRecurrence count: Tu*3 = next 3 Tuesdays
" "
NoteAttach a label: "dinner"

Day Abbreviations

Mo = Monday
Tu = Tuesday
We = Wednesday
Th = Thursday
Fr = Friday
Sa = Saturday
Su = Sunday

Time Format

GDL uses 24-hour time by default. @14 = 2 PM, @0 = midnight.

You can also use am/pm: @6pm = @18

Minutes with a colon: @14:30 = 2:30 PM

Lists vs Ranges vs Spans

[ ]
List — exactly these items. Fr@[18,20,22] = 6 PM, 8 PM, 10 PM
( )
Range — every step between two endpoints. Fr@(18,22) = 6, 7, 8, 9, 10 PM. Optional third item sets step size: Fr@(18,22,2) = 6, 8, 10 PM
a-b
Span — one event with a start and end. Fr@18-22 = 6 PM to 10 PM

Examples

Basics

Fr@19Friday at 7 PM
SaSaturday, all day
Tu@14-16Tuesday 2–4 PM
Fr@6pmFriday at 6 PM
Fr@22^3hFriday 10 PM – 1 AM (3 hours)

Lists

[Tu,Th]@18-20Tue and Thu, 6–8 PM (2 options)
Fr@[18,19,20]Friday at 6, 7, or 8 PM (3 options)
[Tu,Th]@[18,19]Tue at 6, 7 + Thu at 6, 7 (4 options)

Ranges

(Mo,Fr)@9-17Mon through Fri, 9–5 (5 options)
Fr@(18,20)Friday at 6, 7, 8 PM (3 options)

Recurrence

Tu*3@14Next 3 Tuesdays at 2 PM
[Tu*2,Th*3]@14Next 2 Tue + 3 Thu at 2 PM (5 options)

Dates

08/10@14-17August 10, 2–5 PM
(10,15)@6pm10th–15th of month at 6 PM (6 options)

Stepped Ranges

Fr@(18,22,2)Friday at 6, 8, 10 PM (3 options)
Fr@7^(2h,4h)7–9, 7–10, 7–11 AM (3 duration options)
(10,20,5)@1810th, 15th, 20th at 6 PM (3 options)

Combining

Tu*3@10 + Fr@18-203 Tuesdays at 10 AM + Friday 6–8 PM

Notes

Fr@19 "dinner"Friday 7 PM with note "dinner"

Advanced

Fr@[13,14]-[17,18]4 span options (start × end)
Fr@[18,19,20]^2h6–8, 7–9, 8–10 PM (3 spans)

Tips

  • If end time is before start, it wraps to the next day: Fr@21-2 = 9 PM to 2 AM
  • Use ^ for duration: Fr@22^4h = 10 PM for 4 hours
  • Lists and ranges cross-multiply: [Tu,Th]@[18,19] = 4 options
  • Maximum 20 date options per expression
  • Combine with + for independent groups