coss.comschedulingUpcoming
8.6k

Initialization

import { coss } from '@coss';

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

Users

// Create a user
await coss.scheduling.users.create({
  email: '[email protected]',
  name: 'Jane Doe',
});

// Retrieve a user
await coss.scheduling.users.retrieve('user_abc123');

Schedules

// Create a schedule
await coss.scheduling.schedules.create({
  userId: 'user_abc123',
  availability: [
    {
      day: 'Monday',
      start: '09:00',
      end: '17:00',
    },
    // ... other days
  ],
});

// Retrieve schedules
await coss.scheduling.schedules.list({ userId: 'user_abc123' });

Event Types

// Create an event type
await coss.scheduling.eventTypes.create({
  userId: 'user_abc123',
  name: 'Consultation',
  duration: 30,
  scheduleId: 'schedule_abc123',
});

// Retrieve event types
await coss.scheduling.eventTypes.list({ userId: 'user_abc123' });

Bookings

// Create a booking
await coss.scheduling.bookings.create({
  eventTypeId: 'eventType_abc123',
  attendee: {
    name: 'John Smith',
    email: '[email protected]',
  },
  start: '2025-05-01T15:00:00Z',
});

// Retrieve bookings
await coss.scheduling.bookings.list({ userId: 'user_abc123' });

Webhooks

// Webhook events
coss.scheduling.webhooks.on('booking.created', (event) => {
  console.log('New booking:', event.data);
});

coss.scheduling.webhooks.on('booking.cancelled', (event) => {
  console.log('Booking cancelled:', event.data);
});

Utilities

// Validate webhook signature
const isValid = coss.scheduling.utils.verifySignature({
  payload: req.body,
  signature: req.headers['coss-scheduling-signature'],
  secret: 'whsec_scheduling_123',
});