Common use cases
This page explains how you can combine the Calendar Sync features to solve some common problems.
Calendars with "my own" issues
The key principle behind Calendar Sync is that the administrator configures the feeds once, and then a number of users get ready-to-use calendars that they can import to their personal calendar apps. This approach requires some means of access control and/or filtering out unwanted events, otherwise every user could potentially see issues they should not have access to, or which are not interesting to them. Calendar Sync answers all these issues with its access control and grouping features.
One common requirement is that every user only sees their own events. Let's have a look at how you can achieve this in Calendar Sync.
- Let's give our feed a name. This is the name that will appear in feed administration as well as in the "My calendars" page for every user.
- Select the filter or type the JQL query including all issues that should be available in calendars provided by this feed. In our example, there are several users working on the HAC project. We're going to group all issues in this project by user later.
Please note that the currentUser() function should not be used here. See below for more information.
- Configure event date/time and contents. This configuration has no impact on grouping or access control.
- In the Grouping tab, select "Divide up items by user" and then choose what fields to use for the grouping. When multiple fields are selected, each user will be able to see issues where she is in any of these fields.
With this configuration, Calendar Sync will create a calendar for every assignee. Since the "All" group label is configured, it will also create a calendar that includes everyone's issues. Every user would have access to all these calendars.
You can also configure Calendar Sync so that every user only sees their own calendar, and only some users can see everyone. To do so, use the Access control tab in feed configuration.
For example, the following configuration will allow everyone to only see one calendar (with their own issues), and project administrators to see all calendars.
Once these access control settings are in place, project administrators will see the same calendars as before. However, a regular user will only see her own issues:
The currentUser() JQL function
In Jira you can use the currentUser() JQL function to create queries and filters that show different results depending on who's looking. However, such queries should not be used with Calendar Sync.
- In Jira Cloud, Calendar Sync always performs all queries using a system user called "Calendar Sync" (created by Jira automatically). Since this user does not have any issues assigned, the queries return no issues.
- In case of Jira Server (on premise), the queries are executed as the administrator who created the feed. In this case the calendars would always include only the administrator's issues (if she has any).
The main reasons for such behavior are performance (especially in larger Jira instances) and security. Technically speaking, Calendar Sync runs the query once (as the system user or administrator) and then groups the results.