similar code in several methods
You can compose query predicates by applying several where clauses in a row.
The predicates must be passed as Expression&lt;Func&lt;T, bool&gt;&gt; for composition.
See LINQ to Entities: Combining Predicates on Microsoft Docs.
Create a general schedules query like this
private IEnumerable&lt;EventSchedule&gt; GetSchedules(
    string tab,
    Expression&lt;Func&lt;EventSchedule, bool&gt;&gt; dateCondition)
{ 
    var result = Database.EventSchedules
        .Where(s =&gt; s.BaseEvent.IsApproved.Value &amp;&amp;
            !s.IsRemoved.Value &amp;&amp;
            s.BaseEvent.EventsCategories.Any(c =&gt; c.EventCategory.Name == tab))
        .Where(dateCondition)
        .ToList();
    return result.Where(s =&gt; Evaluator.CheckDate(s, today)).ToList();
}

And then pass it the appropriate individual date predicate like this
private IEnumerable&lt;EventSchedule&gt; GetTodaySchedules(string tab) {
    var today = DateTime.Now.Date;
    return GetSchedules(
        tab,
        s =&gt; s.RecurrenceStart.Value.Date &lt;= today &amp;&amp;
             s.RecurrenceEnd.Value.Date &gt;= today);
}

private IEnumerable&lt;EventSchedule&gt; GetTomorrowSchedules(string tab) {
    var tomorrow = DateTime.Now.AddDays(1).Date;
    return GetSchedules(
        tab,
        s =&gt; s.RecurrenceStart.Value.Date &lt;= tomorrow &amp;&amp;
             s.RecurrenceEnd.Value.Date &gt;= tomorrow);
}