Several projects/teams in one calendar
If your goal is the unified calendar (for example, for supervisors) and each team needs to see only their issues there, try the following.
Calendar respects user access to issues. If a user doesn't have access to a project or to particular issues, they will not see them in a calendar.
Define the overall calendar scope
For the calendar scope, select all required issues:

Displaying issues of 3 projects in the calendar.
Set "slices" (filters)
Create quick filters – each of them will leave only the relevant issues from the overall calendar scope in the calendar.

Example 1. Split by projects

Example 2. Split by groups of assignees (teams)
You can organize users into teams by adding them in groups or just by manually specifying in a filter.

Use the basic issue search to retrieve the required jql query.