You have a shortcode for "exact_date." What you need is a shortcode parameter for "start_date" and another one for "end_date." Eliminate "exact_date." Allow dates for both that omit the year, in which case the current year is assumed. Allow the use of variables in place of a date: "today" means today's date; "tomorrow" and "yesterday" mean what you think. A date expression beginning with a plus or minus sign means that many days from today.
Hence to display events from two weeks ago until today would be "start_date='-14' end_date='today' " .
Or to display events from the day after today for the next 45 days would be "start_date='tomorrow' end_date='+45' ".
To show a span of three days surrounding the current day, use "start_date='yesterday' end_date='tomorrow' " Or "start_date='-1' end_date='+1' "