Compliance Calendar
Access the compliance calendar and aggregate data with the de.iterate SDK.
Overview
The compliance resource provides a unified view of all compliance-related activities, including assurance tasks, reviews, and scheduled activities across your organization.
Get All Compliance Data
Fetch all compliance data in a single call:
typescript
const data = await client.compliance.getAllData();
console.log(`Assignees: ${data.assignees.length}`);
console.log(`Assurance Tasks: ${data.assuranceTasks.length}`);
console.log(`Assets: ${data.assets.length}`);
console.log(`Risks: ${data.risks.length}`);
console.log(`Documents: ${data.documents.length}`);
console.log(`Policies: ${data.policies.length}`);
console.log(`Checklists: ${data.checklists.length}`);
console.log(`Corrective Actions: ${data.correctiveActions.length}`);
console.log(`Processes: ${data.processes.length}`);ComplianceData Structure
typescript
interface ComplianceData {
assignees: Assignee[];
assuranceTasks: AssuranceTask[];
assets: Asset[];
risks: Risk[];
documents: SupportingDoc[];
policies: Policy[];
checklists: Checklist[];
correctiveActions: CorrectiveAction[];
processes: ComplianceProcess[];
}Compliance Calendar
Get Calendar
typescript
// Get full calendar
const calendar = await client.compliance.getCalendar();
console.log(`Total Events: ${calendar.summary.totalEvents}`);
console.log(calendar.summary.byType);Get Calendar by Year
typescript
const calendar2025 = await client.compliance.getCalendarByYear(2025);
console.log(`Events in 2025: ${calendar2025.summary.totalEvents}`);Get Calendar by Month
typescript
const janCalendar = await client.compliance.getCalendarByMonth(2025, 1);
console.log(`Events in Jan 2025: ${janCalendar.summary.totalEvents}`);Get Calendar by Date Range
typescript
const q1Calendar = await client.compliance.getCalendarByDateRange(
'2025-01-01',
'2025-03-31'
);
console.log(`Q1 Events: ${q1Calendar.summary.totalEvents}`);CalendarResponse Structure
typescript
interface CalendarResponse {
summary: CalendarSummary;
calendar: CalendarStructure;
events: CalendarEvent[];
}
interface CalendarSummary {
totalEvents: number;
byType: {
'assurance-task': number;
'checklist': number;
'corrective-action': number;
'process': number;
'risk-review': number;
'asset-review': number;
'document-review': number;
'policy-review': number;
};
yearsCount: number;
}
interface CalendarEvent {
id: string;
type: 'assurance-task' | 'checklist' | 'corrective-action' | 'process' |
'risk-review' | 'asset-review' | 'document-review' | 'policy-review';
title: string;
date: Date | string;
dateFormatted?: string;
assignee?: string;
status?: string;
riskLevel?: string;
category?: string;
documentType?: string;
}Individual Data Methods
Get Assignees
typescript
const assignees = await client.compliance.getAssignees();
for (const assignee of assignees) {
console.log(`${assignee.firstName} ${assignee.lastName}`);
}Get Assurance Tasks
typescript
const tasks = await client.compliance.getAssuranceTasks();Get Assets
typescript
const assets = await client.compliance.getAssets();Get Risks
typescript
const risks = await client.compliance.getRisks();Get Documents
typescript
const documents = await client.compliance.getDocuments();Get Policies
typescript
const policies = await client.compliance.getPolicies();Get Checklists
typescript
const checklists = await client.compliance.getChecklists();Get Corrective Actions
typescript
const actions = await client.compliance.getCorrectiveActions();Get Processes
typescript
const processes = await client.compliance.getProcesses();Examples
Compliance Dashboard
typescript
async function complianceDashboard() {
const [data, calendar] = await Promise.all([
client.compliance.getAllData(),
client.compliance.getCalendarByMonth(new Date().getFullYear(), new Date().getMonth() + 1),
]);
console.log('=== Compliance Dashboard ===');
console.log(`\nThis Month's Events: ${calendar.summary.totalEvents}`);
console.log('\nEvent Breakdown:');
for (const [type, count] of Object.entries(calendar.summary.byType)) {
if (count > 0) {
console.log(` ${type}: ${count}`);
}
}
console.log('\n=== Resource Summary ===');
console.log(`Risks: ${data.risks.length}`);
console.log(`Assets: ${data.assets.length}`);
console.log(`Documents: ${data.documents.length}`);
console.log(`Assurance Tasks: ${data.assuranceTasks.length}`);
}Upcoming Reviews
typescript
async function upcomingReviews(days: number = 30) {
const calendar = await client.compliance.getCalendarByDateRange(
new Date().toISOString(),
new Date(Date.now() + days * 24 * 60 * 60 * 1000).toISOString()
);
console.log(`Reviews in next ${days} days: ${calendar.events.length}`);
for (const event of calendar.events) {
console.log(` [${event.type}] ${event.title}`);
console.log(` Date: ${event.dateFormatted || event.date}`);
if (event.assignee) {
console.log(` Assignee: ${event.assignee}`);
}
}
}Next Steps
- Assurance Tasks - Task management
- Risks - Risk reviews
- Documents - Document reviews