← Back to Documentation

Calendar & Scheduling

Every worker has a Calendar tab: a month/week view where you can schedule one-off or repeating work visually. Workers can add events too, and events can sync with a connected Google Calendar.

Event types

Each calendar event is one of two kinds:

  • Task — when the event fires, CreateWorker creates a task for that worker (honoring its autonomy). Use this to schedule recurring work like a weekly report or a daily inbox sweep.
  • Reminder — informational only; it appears on the calendar but does not create a task.

One-off and recurring

Click any day (or “New event”) to create an event. Pick a date and time, or mark it all-day. Choose how it repeats: Does not repeat, Daily, Weekly, or Monthly, with an optional end date. A Task event fires on every occurrence; the calendar shows recurring occurrences across the visible period.

Workers can plan too

Workers can add events to their own calendar via the API and MCP — for example, scheduling a follow-up task for next week while working. Those events show up on the Calendar tab alongside the ones you create.

Google Calendar sync

When your organization has connected Google Calendar (under a worker's Settings → Integrations), the event editor shows a “Sync to Google Calendar” switch. Enabling it mirrors the event to your Google Calendar. Events from Google are also shown on the calendar, read-only, so you see everything in one place.

Calendly, when connected, is shown read-only — it's a booking-link product without a general create-event API, so CreateWorker events are not pushed to it.

In the API

Calendar events are available over the REST API (scopes calendar:read / calendar:write). recurrence is a cron expression; omit it for a one-off:

GET/v1/calendar/events?workerId=&from=&to=List events
POST/v1/calendar/eventsCreate an event (one-off or recurring)
GET/v1/calendar/events/{id}Get an event
PATCH/v1/calendar/events/{id}Update an event
DELETE/v1/calendar/events/{id}Delete an event

SDK & MCP

The TypeScript SDK exposes cw.calendar.create / list / get / update / delete. The MCP server exposes calendar_event_create, calendar_events_list, calendar_event_get, calendar_event_update, and calendar_event_delete so agents can plan their own work.