Assuming an arbitrary period of time for lack of definition for "every day":
SELECT day, count(*) AS visits, array_agg(id) AS ids
FROM generate_series ('2014-02-10'::date
, '2014-02-12'::date
, interval '1 day') AS d(day)
JOIN visits ON tsrange(day::timestamp
, day::timestamp + interval '1 day') && timeslot
GROUP BY 1;
&&
is the "overlap" operator for range types.
Use a LEFT JOIN
to include days with 0 visits in the result.