Drop a single .csv file below.
Upload a CSV with exactly three columns: event_start, event_end, id
(any order β extra columns, such as price, are simply ignored and never stored).
Dates can be YYYY-MM-DD (recommended), MM-DD-YYYY, or DD-MM-YYYY,
separated by commas or semicolons β we detect both automatically.
If two offers for the same product start on the exact same date, which one takes priority for that day is resolved automatically but arbitrarily β avoid ambiguity by giving them distinct start dates whenever possible.
In the diagrams below, red days count towards an offer's real duration; black days were originally part of that offer but were later overlapped by another one, so they don't count. Each day only ever shows one red offer β whichever one overlaps it last.
Offer 1 was designed to run 2026-02-01 to 2026-02-09, but on 2026-02-04 a one-day "Only today" offer took place β so offer 1 loses that day. A third offer then started on 2026-02-07, cutting offer 1 short again. Real duration counts only the days each offer actually "won".
2026-02-15 is covered by three different offers at once β only the last one gets credit for that day, the others don't.
Eight offers for the same product, several overlapping in different ways.