You can't prevent calendar users from viewing future dates. However, if you'd like to hide future events from users, you can use this approach:
Create a sub-calendar to hold the future events. Do NOT give users access to this sub-calendar. (The permission should be set to Not Shared for the users who should not see future events).
When you create future events, assign them to this Future Events sub-calendar.
As the future events become current, move them from the Future Events sub-calendar to the user's own sub-calendar (or other sub-calendars visible to the users).
Use Scheduler view to make moving events easily: drag them from one column to another to assign them to a different sub-calendar.
Click to view a larger version.
You can also change the default calendar view to Day or Multi-Day and disable other calendar views (browser). This can discourage users from looking ahead but will not make it impossible: Users can still change the date into the past or future, and use other calendar views by adding a link parameter.