{"id":1513,"date":"2026-01-17T07:27:57","date_gmt":"2026-01-17T07:27:57","guid":{"rendered":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/?p=1513"},"modified":"2026-01-24T06:28:19","modified_gmt":"2026-01-24T06:28:19","slug":"google-calendar-webhooks-sync-logic","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/kivicare-google-meet-telemed-woocommerce-addon\/documentation\/core-concepts-doc\/google-calendar-webhooks-sync-logic\/","title":{"rendered":"Google Calendar Webhooks &amp; Sync Logic"},"content":{"rendered":"<div class=\"nolwrap\">\n<p>Google Calendar <strong>Webhooks<\/strong> (also known as <em>Push Notifications<\/em>) allow Google to notify your KiviCare system whenever changes occur in calendar events. This ensures that appointments in KiviCare remain accurate and synchronized in real time.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How the Synchronization Works<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Watch Channel Setup<\/strong><br>The plugin can create a <em>watch channel<\/em> for each doctor\u2019s Google Calendar to monitor event changes.<\/li>\n\n\n\n<li><strong>Event Change Notification<\/strong><br>When an event is updated, deleted, or started in Google Calendar, Google sends a push notification to your KiviCare website.<\/li>\n\n\n\n<li><strong>Request Processing<\/strong><br>KiviCare receives the webhook request, identifies the related appointment, and applies the required updates within the system.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Supported Synchronization Scenarios<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><span style=\"color: #7093e5\" class=\"stk-highlight\">Scenario<\/span><\/th><th><span style=\"color: #7093e5\" class=\"stk-highlight\">KiviCare Action<\/span><\/th><th><span style=\"color: #7093e5\" class=\"stk-highlight\">Resulting Status<\/span><\/th><\/tr><\/thead><tbody><tr><td><strong>Event Updated<\/strong><\/td><td>Updates appointment date, time, or details.<\/td><td>Updated<\/td><\/tr><tr><td><strong>Event Deleted<\/strong><\/td><td>Marks the appointment as canceled or unlinked.<\/td><td>Canceled \/ Incomplete<\/td><\/tr><tr><td><strong>Participant Status Changed<\/strong><\/td><td>Tracks patient check-in or attendance.<\/td><td>Arrived \/ Checked-in<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security &amp; Request Verification<\/strong><\/h2>\n\n\n\n<p>Google includes specific HTTP headers in each webhook request, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>X-Goog-Channel-ID<\/code><\/li>\n\n\n\n<li><code>X-Goog-Resource-ID<\/code><\/li>\n<\/ul>\n\n\n\n<p>The plugin validates these headers to confirm that the request is genuine and originated from Google Calendar, preventing unauthorized or spoofed updates.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Configuration Notes (For Developers)<\/strong><\/h2>\n\n\n\n<p>Webhook notifications are typically handled via the endpoint:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>YOUR_SITE_URL\/wp-json\/kivicare\/v1\/settings\/googlemeet\/callback\n<\/code><\/pre>\n\n\n\n<p>or a dedicated webhook route.<\/p>\n\n\n\n<p>At present, the Google Meet Addon primarily relies on <strong>direct API synchronization<\/strong> during appointment create, update, and delete actions in KiviCare. To enable full real-time push-based synchronization, ensure your <strong>Google Cloud Project<\/strong> is configured to allow outbound notifications to your server domain.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Google Calendar Webhooks (also known as Push Notifications) allow Google to notify your KiviCare system whenever changes occur in calendar events. This ensures that appointments in KiviCare remain accurate and synchronized in real time. How the Synchronization Works Supported Synchronization Scenarios Scenario KiviCare Action Resulting Status Event Updated Updates appointment date, time, or details. Updated [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"parent":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-1513","post","type-post","status-publish","format-standard","hentry","category-core-concepts-doc"],"featured_image_src":null,"author_info":{"display_name":"wordpressadminiq","author_link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/author\/wordpressadminiq\/"},"_links":{"self":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/comments?post=1513"}],"version-history":[{"count":8,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1513\/revisions"}],"predecessor-version":[{"id":1601,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1513\/revisions\/1601"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/media?parent=1513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/categories?post=1513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/tags?post=1513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}