Use case: Scheduling

Book time on the calendars people actually use.

Scheduling breaks when it can't see the real calendar or write back to it. workwae reads every calendar an account can see, finds free time across attendees and writes events, RSVPs and meeting links straight to Google, Microsoft 365 and CalDAV.

weekly-sync.ts
// A weekly 1:1 with a Teams or Meet link
const tz = "America/New_York";
const event = await workwae.calendarEvents.create({
  accountId,
  calendarId,
  subject: "Weekly 1:1",
  start: { dateTime: "2026-11-02T10:00:00", timeZone: tz },
  end: { dateTime: "2026-11-02T10:30:00", timeZone: tz },
  attendees: [{ address: "jordan@example.com" }],
  recurrence: ["RRULE:FREQ=WEEKLY;BYDAY=MO"],
  onlineMeeting: true,
});
// Answer an invitation from your own UI
await workwae.calendarEvents.respond({
  accountId,
  eventId: invite.id,
  response: "accepted",
});
What you get

Read, find and write real calendars

One event shape for Google Calendar, Microsoft 365 and CalDAV, with the provider differences handled for you.

Every calendar, one shape

Every calendar the account can see, with single events, recurring series and their exceptions in a rolling window, from Google Calendar, Microsoft 365 and CalDAV servers.

Calendar in the product overview

Free/busy and suggestions

Get each attendee's busy blocks and the common free slots in one call, with the slot length, step, working days and hours, and time zone you set.

Calendar in the product overview

Full event writes

Create, change and delete single events, one occurrence or a whole series, with RFC 5545 recurrence rules, and choose whether attendees hear about it where the provider allows.

Calendar in the product overview

Meeting links

Add a Teams or Google Meet link, a link you already have, or a Zoom or Webex meeting that workwae creates and keeps in step with the event.

Meetings in the product overview

Live changes

calendar_event webhooks for new, changed and deleted events, driven by Google and Microsoft push, name the fields that changed, so availability is never stale.

Webhooks in the product overview
How it fits

From connected calendar to booked meeting

  1. Users connect their calendar

    With Google or Microsoft sign-in, or an IMAP account whose CalDAV server workwae discovers. Approve only the calendar access you need.

  2. workwae indexes and listens

    Calendars, events and series are synced in a rolling window and kept current with push notifications, with polling as a backstop.

  3. You build the booking flow

    Find common free time, write the event with its meeting link, and react to RSVPs and changes as they happen.

Early access

Build scheduling on the calendars your users already have.

We are onboarding a small number of teams. Tell us what you are building.