Initialization

import { coss } from '@coss';
coss.calendar.init({
apiKey: process.env.COSS_KEY,
environment: 'production', // or 'sandbox'
});

Authorization

// Generate an OAuth link for Google Calendar
const authUrl = coss.calendar.auth.getAuthUrl({
provider: 'google',
redirectUri: 'https://yourapp.com/callback',
});
// Exchange authorization code for access tokens
await coss.calendar.auth.exchangeCode({
provider: 'google',
code: 'authorization_code_here',
redirectUri: 'https://yourapp.com/callback',
});

Calendars

// List calendars
await coss.calendar.calendars.list({
provider: 'google',
});
// Retrieve a calendar
await coss.calendar.calendars.retrieve({
provider: 'google',
calendarId: 'primary',
});

Events

// Create an event
await coss.calendar.events.create({
provider: 'google',
calendarId: 'primary',
event: {
summary: 'Meeting with Jane',
description: 'Discuss project updates',
start: { dateTime: '2025-05-01T10:00:00Z' },
end: { dateTime: '2025-05-01T11:00:00Z' },
},
});
// List events
await coss.calendar.events.list({
provider: 'google',
calendarId: 'primary',
});
// Update an event
await coss.calendar.events.update({
provider: 'google',
calendarId: 'primary',
eventId: 'event_abc123',
updates: {
description: 'Updated project discussion details',
},
});
// Delete an event
await coss.calendar.events.delete({
provider: 'google',
calendarId: 'primary',
eventId: 'event_abc123',
});

Webhooks

// Webhook events
coss.calendar.webhooks.on('event.created', (event) => {
console.log('Event created:', event.data);
});
coss.calendar.webhooks.on('event.updated', (event) => {
console.log('Event updated:', event.data);
});
coss.calendar.webhooks.on('event.deleted', (event) => {
console.log('Event deleted:', event.data);
});

Utilities

// Validate webhook signature
const isValid = coss.calendar.utils.verifySignature({
payload: req.body,
signature: req.headers['coss-calendar-signature'],
secret: 'whsec_calendar_123',
});
Join the waitlistJoin the company