PluginsCal.com
Cal.com Database Schema
Database entities and querying synced Cal.com data
The Cal plugin syncs scheduling data to your database for fast queries.
New to Corsair? Learn about database operations, data synchronization, and multi-tenancy.
Full Implementation: See the Cal plugin source code.
Synced Entities
- bookings - Booking records with attendee and time details
Database API
const bookings = await corsair.cal.db.bookings.search({
data: { status: "upcoming" },
});Bookings
Schema
{
uid: string; // Booking UID
title: string;
description?: string;
start_time: string; // ISO timestamp
end_time: string; // ISO timestamp
status: string; // upcoming | past | cancelled | rescheduled
event_type_id?: number;
organizer_email: string;
organizer_name: string;
attendee_email?: string;
attendee_name?: string;
location?: string;
cancellation_reason?: string;
reschedule_reason?: string;
metadata?: Record<string, unknown>;
}Querying Bookings
Search by status:
const upcoming = await corsair.cal.db.bookings.search({
data: { status: "upcoming" },
});Search by organizer:
const bookings = await corsair.cal.db.bookings.search({
data: { organizer_email: "host@example.com" },
});Example: Multi-Tenancy Query
const tenant = corsair.withTenant("user-123");
const bookings = await tenant.cal.db.bookings.search({
data: { status: "upcoming" },
});