2

So I am very new to sharepoint and sharepoint designer. What i am trying to do is as follows:

My organizations sharepoint features several sites in it to include, HR, tech support and what not. Each have their own calendars, and so does the main page everyone can see.

What i've been asked to do is to modify the tool when you click on "Add" instead of just posting to the one particular calendar, there will be two check marks. One for "High level" and "Internal" the idea being, while you're creating the event, you can check "high level" and the event appears on the main page calendar, or "internal" which would then post to the HR pages calendar for example.

Is this possible? and if so does anyone have any resources that i can get?

2 Answers 2

1

To me, this sounds like you need an overlay onto a "main" calendar. Overlays are essentially automated queries that "pull" content from calendars. I believe they don't even have to be exclusively SharePoint calendars, but the could also be Exchange calendars, and the overlays can pick a view that you want to display, as well.

The basic steps for this are as follows:

  • Create a column in your internal calendar(s) called something like "DisplayOn"
    • Make it a Choice column
    • The two options you put in could be like Internal Display and Public Display
    • Select the Checkbox option below.
    • Have this attach to all content types. Now when you create a new calendar event you should see your new column with checkboxes.

When you select the checkboxes and save, the item values should be saved with semi-colon separated list, if you chose more than one. ie Internal Display;Public Display. So now if we filter a view with the Contains keyword they'll filter for whatever you've searched for. See below.

enter image description here

  • Create a new Calendar view on your Internal Calendar for Public Display.

    • You can make this similar to the default Calendar view and just change the filter to something like below. Here I've used a column named Category but you should use the column you just made. Whatever it's name is.

    enter image description here

    • You could do this again with the internal stuff, but if you want everything that's supposed to be public, to also be on the internal stuff you can leave it alone. If you wanted to seperate them you'll need to create another view for Internal.
  • Now we need to Overlay the new view.

    • Go to your Main calendar. Select the Calendar Overlays in the ribbon on the top.

      enter image description here

    • Create a new one, fill in the information with the absolute URL (http://MySite/Path/To/Site) and resolve, this'll bring up your lists with "Calendar" views.

    • Select your calendar, and the view you want, and add.
    • Your specified calendar overlay should now be on your Main calendar. If you set up the view correctly, it should just have the items you selected "Main" for.

Below is an example of how we did this for each of our committees. December was a little quiet, but it does show two different committees on the page.

enter image description here

0

You need to create on Root Site new columns - CalendarHighLevel and CalendarInternal and add them to all Calendar list which you want to include in. You can do this by powershell script for instance.

Now you have two options:

  1. Create workflow and use it for copyring HighLevel=True events to the root calendar (but there is problem if the event will be changed or deleted)
  2. Use Search Content Query WebPart where you will define filter: Content Type for the Calendar Events and HighLevel=True. Make sure you have created new Managed Property and filled with Crawled property CalendarHighLevel and make it Searchable, Refinable, Queryable in Central Administration - Search - Search Schema
    • You can use default Search Query WebPart, select Template and you will see how it is suitable for your needs. OR you can create own WebPart with SPFX and use the Search Content Query for getting items.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.