Imagine the following situation. You have a department that controls the events of your company. Each place (gym, hotel, etc.) is free to book their evens, but you need a way to collect global information and generate reports and other information. Since you have a lot of units, it only makes sense for each group to see their evens. Otherwise, it would become crowded and complex to manage.
Since we want to record events and more information, like the name of the client, address, VAT, number of people, etc., we thought of the following approach:
- Create a Calendar SharePoint list for each place
- Add the custom fields.
- Give permissions to each calendar.
- Allow the central department to Export the information and parse it.
It would work, but you can see the complexity already of managing hundreds of calendars and permissions. Also, the shared services would become dependent on a SharePoint administrator to add and remove calendars when needed and provide adequate permissions to each person, and that would result in a lot of work. Not the ideal solution.
As you may have guessed already, this is not an invented example. I got these exact requirements and was concerned that this would not scale nicely. While discussing this with a colleague, he told me that I could create folders for each area and with permissions for each element that can access it. Then, we can create a global view that has the information without the folders and another one with the calendar. Then each unit, based on the data in the list. Simple and elegant and I want to show you how to do it.
I created a SharePoint list called “Events” with some fields already.
- Start Date/Time
- End Date/Time
- Client details (name and VAT)
- Type of the event.
Nothing different here. You can use any of your lists to achieve this strategy. Notice that the naming follows a pattern. You can check my article where I go through all my recommended best practices when creating and naming SharePoint lists. You can also check how to accurately translate the column names so that you can have them in multiple languages and change based on the user’s localization.
I’ll keep the names as they are now and change them after.
SharePoint disables folders by default. To enable them you can go to:
- List Settings
- Advanced Settings
- Folders and select Yes
When we go back to the list, we see a new option to create a folder:
Let’s create two folders as a test.
Creating a new item inside a folder
To create a new item, you would take the same steps as before. Open the folder and choose “New > Item.”
And add the details:
If we check the Unit 2, it’s empty since we created the event in Unit 1.
And the main area only contains folders, since we didn’t create any event there.
So far, so good. We have segmentation by folder, and we can not take care of the permissions.
To change the permissions of each folder, you can use the “Manage Access“ and remove the permissions for the “List Members” (in my case, the list is called Test), and for the “List Viewers.”
Remove the “List Members”
Remove the “List Visitors“
It will ensure that only the people you want can access the folder.
And add the people who can access the folder.
Optionally you can keep the option to notify people if it makes sense in your case.
Create the “master” list
Now that we have a segmentation of people between the folders, it’s time to create the master list that contains all events and no folders. It can be used by the administration or other central services to parse all events in bulk. To do this, we need to create a new view:
Give it a name:
And then do some configuration to ignore the folders:
- First, let’s edit the view
- Scroll down and pick the option “Show all items without folders.”
You’ll see something like this:
You can customize this view as you want without any impact on the way that other users see the views.
Create the calendar view (bonus)
Optionally, you can create a calendar view to have a global overview of all events that are happening in all units. To do that, you need to create an additional view.
As always, we need to go to “List Settings”:
In the end, we find an Area to create new views. Let’s create a new one.
And we want a calendar so let’s pick that one:
For SharePoint to be able to create this view, it needs to map to the correct values in the List. For example, we need a start and end date; otherwise, a calendar wouldn’t be possible.
When you press create you’ll get this: