JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://kooiinc.github.io/JSHelpers/Helpers-min.js"></script>
<div class="solink" data-linkid="27763086"></div>

JavaScript

var log = Helpers.log2Screen;
Helpers.extendDate();


log('<hr><h3>interval every 7 days until 2015/21/1, no weekends</h3><hr>');
log( recurringDates(new Date('2018/1/1'), 
                    new Date('2018/21/1'), 
                    7, 'Date')
                    .map(function(v) {return v.format('WD MM dd yyyy');})
                    .join('<br>'));


function recurringDates(startDate, endDate, interval, intervalType, noweekends) {
    intervalType = intervalType || 'Date';
    var date = startDate;
    var recurrent = [];
    var setget = {set: 'set'+intervalType, get: 'get'+intervalType};

    while (date < endDate) {
        void( noweekends ?  recurrent.push(noWeekend())
                         : recurrent.push(new Date(date)) );
        date[setget.set](date[setget.get]()+interval);
    }
    
    // add 1 day for sunday, subtract one for saturday
    function noWeekend() {
        var add, currdate = new Date(date), day = date.getDay();
        if (~[6,0].indexOf(day)) {
          currdate.setDate(currdate.getDate() + (add = day == 6 ? -1 : 1));
        }
        return new Date(currdate);
    }

    return recurrent;
}