{"id":1541,"date":"2026-01-17T08:29:02","date_gmt":"2026-01-17T08:29:02","guid":{"rendered":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/?p=1541"},"modified":"2026-01-24T06:30:37","modified_gmt":"2026-01-24T06:30:37","slug":"database-mapping-table","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/kivicare-google-meet-telemed-woocommerce-addon\/documentation\/integration-reference\/database-mapping-table\/","title":{"rendered":"Database Mapping Table"},"content":{"rendered":"<div class=\"nolwrap\">\n<p>The KiviCare Google Meet Addon uses a dedicated database table to maintain a reliable connection between <strong>WordPress appointments<\/strong> and <strong>Google Meet events<\/strong>. This local mapping minimizes unnecessary API calls by securely caching Google Calendar event details.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Table Name: <code>wp_kc_appointment_google_meet_mappings<\/code><\/strong><\/h2>\n\n\n\n<p>This table stores Google Meet information associated with each KiviCare appointment.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Column Name<\/th><th>Data Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>id<\/code><\/td><td><code>INT<\/code><\/td><td>Primary key (auto-increment).<\/td><\/tr><tr><td><code>appointment_id<\/code><\/td><td><code>INT<\/code><\/td><td>Unique ID of the KiviCare appointment.<\/td><\/tr><tr><td><code>event_id<\/code><\/td><td><code>VARCHAR<\/code><\/td><td>Unique event ID generated by Google Calendar.<\/td><\/tr><tr><td><code>url<\/code><\/td><td><code>VARCHAR<\/code><\/td><td>Google Meet meeting URL (<code>hangoutLink<\/code>).<\/td><\/tr><tr><td><code>password<\/code><\/td><td><code>VARCHAR<\/code><\/td><td>Reserved for compatibility (not commonly used by Google Meet).<\/td><\/tr><tr><td><code>event_url<\/code><\/td><td><code>VARCHAR<\/code><\/td><td>Direct link to the event in Google Calendar\u2019s web interface.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Programmatic Data Access<\/strong><\/h2>\n\n\n\n<p>Developers can retrieve Google Meet mapping data using the<br><code>KCGMAppointmentGoogleMeetMapping<\/code> model.<\/p>\n\n\n    <div class=\"docsy-code-block with-line-numbers\" data-language=\"javascript\">\n                \n        <div class=\"code-header\">\n            <span class=\"code-language\">JAVASCRIPT<\/span>\n            <button class=\"code-copy-btn\" aria-label=\"Copy code\">\n                <i class=\"ph ph-copy\"><\/i>\n                <span class=\"copy-text\">Copy<\/span>\n                <span class=\"copied-text\">Copied!<\/span>\n            <\/button>\n        <\/div>\n        \n        <div class=\"code-wrapper\">\n            <pre class=\"language-javascript\"><code class=\"language-javascript\">use KCGMApp\\models\\KCGMAppointmentGoogleMeetMapping;\n\n\/\/ Retrieve Google Meet mapping for a specific appointment\n$mapping = KCGMAppointmentGoogleMeetMapping::where(&#039;appointment_id&#039;, $id)-&gt;first();\n\nif ($mapping) {\n    echo &#039;Google Meet URL: &#039; . $mapping-&gt;url;\n}\n<\/code><\/pre>\n            \n                            <div class=\"line-numbers-wrapper\" aria-hidden=\"true\">\n                                            <span class=\"line-number\">1<\/span>\n                                            <span class=\"line-number\">2<\/span>\n                                            <span class=\"line-number\">3<\/span>\n                                            <span class=\"line-number\">4<\/span>\n                                            <span class=\"line-number\">5<\/span>\n                                            <span class=\"line-number\">6<\/span>\n                                            <span class=\"line-number\">7<\/span>\n                                            <span class=\"line-number\">8<\/span>\n                                            <span class=\"line-number\">9<\/span>\n                                    <\/div>\n                    <\/div>\n        \n            <\/div>\n    \n\n\n<p>This approach allows seamless access to meeting links for custom workflows or integrations.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Automatic Data Cleanup<\/strong><\/h2>\n\n\n\n<p>When an appointment is deleted from KiviCare, the addon automatically:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Cancels the corresponding Google Calendar event using the stored <code>event_id<\/code>.<\/li>\n\n\n\n<li>Removes the related entry from the mapping table to keep the database clean.<\/li>\n<\/ol>\n\n\n\n<p>This ensures data consistency between WordPress and Google Calendar at all times.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The KiviCare Google Meet Addon uses a dedicated database table to maintain a reliable connection between WordPress appointments and Google Meet events. This local mapping minimizes unnecessary API calls by securely caching Google Calendar event details. Table Name: wp_kc_appointment_google_meet_mappings This table stores Google Meet information associated with each KiviCare appointment. Column Name Data Type Description [&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":[45],"tags":[],"class_list":["post-1541","post","type-post","status-publish","format-standard","hentry","category-integration-reference"],"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\/1541","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=1541"}],"version-history":[{"count":5,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1541\/revisions"}],"predecessor-version":[{"id":1605,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/1541\/revisions\/1605"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/media?parent=1541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/categories?post=1541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/tags?post=1541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}