Initialization
import { coss } from '@coss';coss.calendar.init({apiKey: process.env.COSS_KEY,environment: 'production', // or 'sandbox'});
Authorization
// Generate an OAuth link for Google Calendarconst authUrl = coss.calendar.auth.getAuthUrl({provider: 'google',redirectUri: 'https://yourapp.com/callback',});// Exchange authorization code for access tokensawait coss.calendar.auth.exchangeCode({provider: 'google',code: 'authorization_code_here',redirectUri: 'https://yourapp.com/callback',});
Calendars
// List calendarsawait coss.calendar.calendars.list({provider: 'google',});// Retrieve a calendarawait coss.calendar.calendars.retrieve({provider: 'google',calendarId: 'primary',});
Events
// Create an eventawait 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 eventsawait coss.calendar.events.list({provider: 'google',calendarId: 'primary',});// Update an eventawait coss.calendar.events.update({provider: 'google',calendarId: 'primary',eventId: 'event_abc123',updates: {description: 'Updated project discussion details',},});// Delete an eventawait coss.calendar.events.delete({provider: 'google',calendarId: 'primary',eventId: 'event_abc123',});
Webhooks
// Webhook eventscoss.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 signatureconst isValid = coss.calendar.utils.verifySignature({payload: req.body,signature: req.headers['coss-calendar-signature'],secret: 'whsec_calendar_123',});