Is there a table I can query to see an individual's calendar if they use calendaring?
Are we talking about the setting of work and non-work days for individual resources (who are already linked to another base calendar, but have made their own alterations)?
If so, you would not easily be able to query the calendar information itself - it is stored in a LOB data type with a binary format.
Initially when you create a resource in Clarity they are going to be associated with a base calendar.
This linkage exists in the database between prj_resources.prcalendarid = prcalendar.prid.
If the value in prcalendar.prresourceid for that table join contains a NULL then the resource has not had any differences or exceptions from the base calendar in the system.
As soon as a calendar change happens directly at the resource level, a new record is created in the prcalendar table, the prj_resources.prcalendarid value will be updated to point to it, and the prcalendar.prresourceid will contain a matching value back to the prj_resources.prid value. prcalendar.prbasecalendarid for this new record will point to the old/previous one that represents the base calendar that this resource is still connected to.
It is probably best at this point to have a look at the records in prcalendar to see how these connections are made. Based on this information, it can be possible to see which resources have been having calendar exceptions from the base calendar, but it would not tell you what those exceptions were.
To get those, today, would have to use the time slice querying of Availability data between two resources that have the same base calendar, where one of the resources is known to have no changes (e.g. an admin user or purpose-built resource that exists for the purpose of having a base calendar with no personal calendar changes) and the other is the resource with the exceptions. Where differences in availability exist on a given day between the two resources, would be where the resource is having an individual alteration to their calendar.
This may not be trivial to create, but as a technique it is one that has been around for a while (it is described in some other threads on these communities too I believe), and so there may be other customers who have created similar things already that might be able to be shared.
Yes that was helpful.