Google Calendar sync reference
Review how reservation Query, event fields, visibility, and cancellation policy apply to Google Calendar.
Use this reference to choose which reservations and customer details leave Laney. After setup, monitor sync delay, missing events, duplicates, and events that contain personal information.
Direction and scope
Google Calendar uses one-way sync from Laney. Laney treats the reservations selected by sourceQuery
as the desired event set. It compares that set with the connected Google primary calendar every five
minutes.
- A newly selected reservation creates an event.
- A changed time or detail updates the same event.
- A reservation that leaves the Query removes its Laney-created event.
- A direct Google Calendar edit returns to the Laney value during the next sync.
- User-created events and events from other connections stay unchanged.
- After one delayed run, the next run compares the current complete set again.
Account and organization scope
Each Google Calendar account reads reservations from its owning organization only. Its connection permission and Google primary calendar apply only to that account. One Google primary calendar cannot belong to multiple organizations.
For multiple branches, create one account per branch and connect different Google accounts. See Connect Google Calendar for the procedure.
Configuration fields
| Field | Default | Behavior |
|---|---|---|
calendarId | Set during connection | The approved Google account's primary calendar. Do not edit it manually. |
timeZone | Google primary calendar time zone | Uses an IANA time zone name, such as Asia/Seoul. |
summary | 예약 | Provides the first part of every event title. |
customerName | masked | Selects full, masked, or none for customer names. |
visibility | private | private restricts details. default follows calendar sharing settings. |
defaultDurationMinutes | 60 | Sets a 5 to 1,440 minute duration when the reservation has no end time. |
locationField | Empty | Selects a reservation field path for the Google event location. |
detailFields | Empty object | Maps description labels to reservation field paths in a JSON object. |
includeNotes | false | Includes reservation notes in the event description when set to true. |
cancelPolicy | delete | delete removes the event. keep leaves a visible cancellation. |
sourceQuery | All reservation statuses | Selects the complete reservation set to reconcile with Google Calendar. |
Query rules
sourceQuery uses the same Query syntax as automations. A reservation outside this Query must no longer
exist in Google Calendar. The comparison requires a complete set, so limit and offset are invalid.
This example selects future Pending and Confirmed reservations. Include the customer_id relationship
when an event title uses the customer name.
{
"where": {
"status": { "in": ["pending", "confirmed"] },
"starts_at": { "gte": "now" }
},
"embed": {
"customer_id": {}
}
}When cancelPolicy is keep, include cancelled in the Query. Otherwise, the reservation leaves the
desired set before the policy can preserve its event. See Automation query reference
for filters and relationship conditions.
Reservation and event fields
| Google event | Laney reservation | Rule |
|---|---|---|
| Title | summary, customer name | The default example is 예약 · 홍*동. |
| Start | starts_at | Uses local wall time in timeZone. |
| End | ends_at | Adds defaultDurationMinutes when the value is empty. |
| Description | Status, detailFields, notes | Always includes status. Notes require explicit inclusion. |
| Location | Value at locationField | Omits location when the value is empty. |
| Visibility | visibility | Defaults to private. |
| Availability | Status and cancelPolicy | Normal events are busy. Preserved cancelled events are free. |
Enter description labels and reservation field paths as JSON in detailFields.
{
"Service": "custom.treatment",
"Staff": "custom.staff_name"
}Location uses the same path format. For example, custom.room in locationField places that custom
field value in the Google event location.
Cancellation policy
| Value | When a cancelled reservation remains in the Query | When a reservation leaves the Query |
|---|---|---|
delete | Deletes the Google event. | Deletes the Google event. |
keep | Adds [취소] to the title and marks the event as free. | Deletes the Google event. |
To retain cancellations in Google Calendar, select keep and include cancelled in the Query. Laney
keeps the reservation history regardless of this policy.
Privacy and notifications
- The default masks the middle characters of a customer name. Select
noneto omit the name. - Notes stay out by default. Check free-text notes for sensitive information before inclusion.
- Google Calendar sharing permissions also affect who can view a
privateevent. - Customers are not attendees. Laney sends no event creation, change, or cancellation email.
- Hidden markers identify Laney-created events without appearing in the event description.
Standards and Google APIs
Account approval uses Google's OAuth 2.0 web server flow. Offline access lets scheduled sync continue when the administrator is not present.
Laney requests only event read and edit access plus calendar-list read access. The Calendar API scopes document describes these permissions. The Events API handles event creation and updates. Google Calendar private extended properties identify events managed by this connection.
This connection is not an iCalendar RFC 5545 subscription feed. The authenticated Calendar API applies reservation creation, changes, and cancellation to the same event.