You have the ability to restrict access to an Activity to yourself, to a Team or to the Activity's User Attendees only. Let's take a look at how you go about accomplishing this.
I won't cover here any other aspects of setting up an activity, as you can find that information here. The Privacy Options component for Activities can be found toward the bottom of an Activity's Details page:
As you can see, by default the Privacy Options for an Activity are set to "Everyone," meaning all database users have access to the Activity. If you click inside the Privacy Options box, you'll see the below:
If you click "Just Me" here, the Activity will only be accessible to you. If you click "Only Attendees" here, the Activity will be accessible to each database user that is listed as an Attendee for the Activity. And, if you click "Only This Team," you can then choose from amongst the User Teams set up within your database.
After you've chosen your desired Privacy Option and Saved the Activity, the Activity should only be visible for you, the Team or the Activity's Attendees on the Calendar, in Reports and Exports, on the Dashboard and on Contact Overviews. It will not be visible for database users that fall outside of your selected Privacy Options. But, they can see that you (or other Activity Attendees) aren't free during that time period when viewing your calendar. In the example below, another database user can see that I (Paul Cantrell) am busy from 12 - 1pm on April 20, but that is all of the information about the activity they can garner, as they can't open the activity to view any more details than what is onscreen here: