{"id":11316,"date":"2026-05-29T15:30:02","date_gmt":"2026-05-29T07:30:02","guid":{"rendered":"https:\/\/aeosub.com\/annovisio\/"},"modified":"2026-05-29T15:30:02","modified_gmt":"2026-05-29T07:30:02","slug":"annovisio","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/annovisio\/","title":{"rendered":"Annovisio"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/annovisio.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/ralf_st\/\" target=\"_blank\" rel=\"noopener\">Annovisio<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.2 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-29 7:02am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/annovisio\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Sync Calendly event types to WordPress and display them in a clean yearly calendar with support for multi-day events.<\/div>\n<p>Annovisio connects a WordPress site with Calendly and displays imported event types in a clear yearly calendar.<\/p>\n<p>Features:<\/p>\n<ul>\n<li>Display Calendly event types in a yearly calendar via shortcode<\/li>\n<li>Support multi-day events<\/li>\n<li>Sync Calendly event types manually<\/li>\n<li>Optional automatic synchronization via WP-Cron<\/li>\n<li>Settings page in the WordPress admin area<\/li>\n<\/ul>\n<p>This plugin is designed for site owners who want to present bookable event formats in a compact annual calendar view.<\/p>\n<h3>External services<\/h3>\n<p>This plugin uses Calendly as an external service. Calendly is required to synchronize Calendly event types into WordPress, to check availability before opening a booking dialog, and to display Calendly&#8217;s booking popup on frontend pages that use the <code>[annovisio]<\/code> shortcode.<\/p>\n<p>External services used:<\/p>\n<ul>\n<li>Calendly service: https:\/\/calendly.com<\/li>\n<li>Calendly API endpoint used by the plugin: https:\/\/api.calendly.com<\/li>\n<li>Calendly frontend widget assets loaded by the shortcode: https:\/\/calendly.com\/assets\/external\/widget.js and https:\/\/calendly.com\/assets\/external\/widget.css<\/li>\n<\/ul>\n<p>What is sent to Calendly and when:<\/p>\n<ul>\n<li>During manual synchronization and WP-Cron automatic synchronization, the plugin sends authenticated server-side GET requests to <code>https:\/\/api.calendly.com<\/code> using the Calendly Personal Access Token configured by the site administrator in the WordPress admin area.<\/li>\n<li>During synchronization, the plugin requests Calendly data from <code>\/users\/me<\/code> and <code>\/event_types<\/code>. For availability checks, the plugin requests <code>\/event_type_available_times<\/code>. Request parameters can include Calendly user URI, event type URI, <code>active<\/code>, <code>count<\/code>, start\/end time values, and Calendly pagination URLs returned by previous API responses.<\/li>\n<li>When a site visitor clicks an event rendered by the <code>[annovisio]<\/code> shortcode, the visitor&#8217;s browser first calls this plugin&#8217;s WordPress REST endpoint on the same WordPress site with the Calendly event type URI and either a selected date or a UTC slot start. The plugin then sends a server-side authenticated request to Calendly&#8217;s <code>\/event_type_available_times<\/code> endpoint with the event type URI and the calculated start\/end time window.<\/li>\n<li>On frontend pages where the <code>[annovisio]<\/code> shortcode renders the calendar, the visitor&#8217;s browser loads Calendly&#8217;s widget JavaScript and CSS from <code>calendly.com<\/code> so Calendly&#8217;s booking popup can be displayed. Interactions inside the Calendly booking popup are handled by Calendly.<\/li>\n<\/ul>\n<p>Calendly legal links:<\/p>\n<ul>\n<li>Terms: https:\/\/calendly.com\/legal\/customer-terms-conditions<\/li>\n<li>Privacy: https:\/\/calendly.com\/legal\/privacy-notice<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Sync Calendly event types to WordPress and display them in a clean yearly calendar with support for multi-day events.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[723,2485,724,2486,555,2487],"class_list":["post-11316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-calendar","tag-calendly","tag-event-calendar","tag-multi-day-events","tag-wordpress-plugin","tag-yearly-calendar"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11316"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}