Use Date Period and Interval classes for occurrence calculations.
Increment the end date in the daily recurrence to accomodate for PHP's DatePeriod class not including it.