GoWeBaKnowledge Center

Smart Calendar

The GoWeBa Calendar module is a comprehensive time-management system integrated with the CRM. It is not a simple agenda — it is an intelligent tool that connects your appointments to your contacts, tasks, invoices, and your WEBA AI assistant. The GoWeBa calendar supports: multiple calendars per user, participants with RSVP tracking, recurrences, reminders, Google Calendar sync, public availability slots (booking), sharing between colleagues, and statistical analysis.

Architecture

Event Management

Creating an Event

A GoWeBa event can be created in several ways:

  • Calendar interface: click on a time slot or the "+ New Event" button
  • WEBA: "Schedule a meeting with Marie tomorrow at 2 PM for 1 hour"
  • Via a call: Voice AI creates the event during the phone call
  • Sync: automatically imported from Google Calendar
  • Booking: a client books a public slot

Event Fields

Event Statuses

Visibility

Participants and RSVP

Adding Participants

Each event can have internal participants (organization members) or external participants (GoWeBa contacts or guests invited by email):

Response Tracking

GoWeBa tracks RSVP responses in real time:

  • Notification: invitees receive an invitation email with RSVP buttons
  • Dashboard: the owner sees responses at a glance
  • Reminder: a reminder is sent to invitees who have not responded
  • Analytics: response-rate statistics in the calendar dashboard

RSVP Analytics

The /api/calendar/analytics API provides event statistics:

Recurring Events

GoWeBa supports recurring events with flexible repetition rules:

Recurrences are stored in the CalendarRecurrence model and linked to the master event. Each occurrence can be modified individually (recurrence exception) or in bulk. ⚠️ Deleting a recurrence deletes ALL future occurrences. To delete a single occurrence, use "Delete this occurrence only."

Reminders

Each event can have one or more configurable reminders:

Default reminders are: 15 minutes before (push) and 1 hour before (email). Users can customize reminders per event.

Availability and Online Booking

Setting Up Availability

The Availability tool lets you define the time slots during which you are available for external appointments:

  1. Create an availability — Calendar → Availability → New Availability
  2. Define the slots — Monday–Friday 9 AM–5 PM, 30-minute duration, 10-minute buffer between slots
  3. Customize — Title, description, video-conference link, color
  4. Publish — Generate a public booking link
  5. Share — Send the link to clients or embed it on your website

The Booking Process

  1. The client clicks the booking link — Public page showing the availability calendar
  2. Slot selection — The client picks an available date and time
  3. Form — Name, email, phone (optional), notes
  4. Confirmation — The booking is created with CONFIRMED status
  5. Notifications — Confirmation email to the client + notification to the owner
  6. Event created — A CalendarEvent is automatically created in the owner’s calendar

Booking Management

Each booking has a unique cancelToken allowing the client to cancel without logging in. 💡 Add your booking link to your email signature to maximize reservations.

Google Calendar Sync

GoWeBa can sync with Google Calendar for a unified experience:

Sync Features

  • Import Google Calendar events → GoWeBa
  • Calendar conflict detection
  • Bidirectional update (depending on permission)
  • Participant and RSVP synchronization
  • Multi-calendar support

Setup

  1. Go to Calendar → Sync — Open the sync dialog
  2. Connect Google Calendar — Authorize GoWeBa via OAuth 2.0
  3. Select calendars — Choose which Google calendars to sync
  4. Configure direction — Import only or bidirectional
  5. Activate — Sync runs automatically

Calendar Sharing

Calendars can be shared between organization members:

Sharing is managed via the Calendar → Sharing page. The calendar owner controls who has access and at what permission level.

Real-world Use Cases

Scenario: Scheduling via WEBA

  1. The user types in WEBA: — "Schedule a follow-up meeting with Acme Inc next Tuesday at 10 AM, 1 hour, Room B"
  2. WEBA extracts the data — Title: Follow-up meeting Acme Inc, Tuesday 10–11 AM, Location: Room B
  3. Availability check — WEBA verifies the slot is free
  4. Event creation — Event created with CONFIRMED status
  5. Contact association — The event is linked to the "Acme Inc" contact in the CRM
  6. Notification — Event card displayed in the chat with a "View in calendar" button

Scenario: Online client booking

  1. The consultant shares their booking link — acme.goweba.com/book/consultation
  2. The client opens the link — They see available slots for the next 2 weeks
  3. Selection: Wednesday 2 PM — The client fills in their name and email
  4. Automatic confirmation — Confirmation email sent to the client and the consultant
  5. Reminder — The client receives an SMS reminder 1 hour before
  6. Post-appointment — The consultant generates an AI summary and creates follow-up tasks

Scenario: AI post-meeting summary

  1. The meeting is over — The event moves to COMPLETED status
  2. The user clicks "AI Summary" — WEBA analyzes the meeting notes
  3. Structured summary generated — Points discussed, decisions made, action items
  4. Summary stored — In the event’s aiSummary field
  5. Actions created — Follow-up tasks are automatically created in the Tasks module

Troubleshooting and FAQ

Common Issues

FAQ

Q: Can I have multiple calendars? A: Yes. Each user can create multiple calendars (Personal, Work, Projects) with distinct colors and settings. Q: Is booking free for clients? A: Yes, online appointment booking is free for your clients. Only the SMS notification consumes credits. Q: Can I embed the calendar on an external website? A: Yes, the booking link can be embedded in an iframe or shared directly. An embeddable widget is also available. Q: Can WEBA check my availability? A: Yes. Ask "Am I free Tuesday afternoon?" and WEBA will check your calendar to give you a summary of your free and busy slots. Q: How do I export my calendar? A: The calendar can be exported in iCal (.ics) format, compatible with all calendar apps (Apple Calendar, Outlook, Google Calendar).

— End of Module 05 —

GoWeBa — Operations Bible Document generated on May 6, 2026

ComponentRoleDetail
UserCalendarPersonal calendarEach user can have multiple calendars (Personal, Work, Project X)
CalendarEventEventAn appointment, meeting, call, deadline — with participants and reminders
CalendarEventAttendeeParticipantInvitees with RSVP status (ACCEPTED, DECLINED, TENTATIVE, PENDING)
CalendarReminderReminderPre-event notifications (email, push, SMS)
CalendarRecurrenceRecurrenceRepetition rules (daily, weekly, monthly, custom)
CalendarAvailabilityAvailabilityPublic slots for online appointment booking
BookingReservationAn external client books a slot via the public link
CalendarShareSharingCalendar sharing between colleagues with permissions (VIEW, EDIT)
FieldTypeRequiredDescription
titleTextEvent name
descriptionLong textNotes, agenda, details
startAtDate/timeEvent start
endAtDate/timeEvent end
timezoneTimezoneDefault: America/Montreal
isAllDayBooleanAll-day event (no time)
locationTextPhysical address or location
meetingLinkURLVideo-conference link (Zoom, Meet, Teams)
colorHexCalendar display color
statusEnumCONFIRMED, TENTATIVE, CANCELLED, COMPLETED
visibilityEnumPUBLIC, PRIVATE, CONFIDENTIAL
relatedContactIdUUIDAssociated GoWeBa contact
aiSummaryTextAI-generated post-meeting summary
StatusDescriptionColor
CONFIRMEDConfirmed event, visible in the calendarBlue (default)
TENTATIVEPending confirmationYellow / hatched
CANCELLEDCancelled (kept in history)Gray / strikethrough
COMPLETEDFinished (past + summary available)Green
VisibilityWho can seeDetails displayed
PUBLICAll organization membersTitle, time, location, participants
PRIVATEOnly the owner and participantsTitle, time (no details for others)
CONFIDENTIALOnly the owner"Busy" slot visible, no details
FieldTypeDescription
emailEmailParticipant’s email address
displayNameTextDisplay name
statusEnumPENDING, ACCEPTED, DECLINED, TENTATIVE
isOrganizerBooleantrue if this is the organizer
isRequiredBooleantrue if attendance is mandatory
contactIdUUIDLink to a GoWeBa contact (if applicable)
MetricDescription
Total eventsNumber of events in the period
Events by statusDistribution: CONFIRMED / TENTATIVE / CANCELLED / COMPLETED
Total participantsTotal number of invited participants
RSVP responsesDistribution: ACCEPTED / DECLINED / TENTATIVE / PENDING
Response ratePercentage of participants who responded
Recurring eventsNumber of events linked to a recurrence
FrequencyExampleDescription
DailyEvery day at 9 AMDaily standup
WeeklyEvery Tuesday and ThursdayBi-weekly team meeting
Monthly1st of every monthMonthly review
YearlyMarch 15 every yearAnniversary, renewal
CustomEvery 2nd Monday of the monthCustom RRULE
ChannelTimingExample
EmailX minutes/hours beforeEmail 1 hour before with event details
Browser pushX minutes beforePush notification 15 minutes before
SMSX minutes/hours beforeSMS 30 minutes before (consumes SMS credits)
In-appX minutes beforeNotification in the GoWeBa bell
StatusDescriptionActions
CONFIRMEDBooking confirmedSend reminder, modify, cancel
CANCELLEDCancelled by the client or the ownerThe slot becomes available again
COMPLETEDAppointment finishedAdd notes, AI summary
NO_SHOWThe client did not show upMark as no-show for statistics
PermissionView eventsCreate eventsEdit eventsDelete
VIEW
EDIT
IssueLikely causeSolution
Event at the wrong timeIncorrect timezoneCheck the timezone in the user profile (America/Montreal)
Booking not visibleAvailability not publishedEnsure the availability is active and the link is generated
Google sync failsOAuth token expiredReconnect via Calendar → Sync
Participant not notifiedInvalid email or spam filtersCheck the email address and anti-spam filters
Reminder not receivedNotifications disabledCheck browser notification preferences and in Settings
Recurrence not updatedEdited the occurrence instead of the seriesChoose "Edit all occurrences" in the dialog
Booking slot already takenCalendar conflictThe slot is occupied by another event — configure buffer time

© 2024–2026 GOWEBA INC. — Make it Simple, Make it Possible, Make it Real.