r/** * Adds a simple meta entry to the repository filter schema. * * @since 4.9.5 * * @param string $key The filter key, the one that will be used in `by` and `where` calls. * @param string|array $meta_key The meta key(s) to use for the meta lookup. * @param string|null $by The ->by() lookup to use (defaults to meta_regexp_or_like). */h!- !-q/** * Adds a simple taxonomy entry to the repository filter schema. * * @since 4.9.5 * * @param string $key The filter key, the one that will be used in `by` and `where` calls. * @param string|array $taxonomy The taxonomy/taxonomies to use for the tax lookup. * @param string|null $by The ->by() lookup to use (defaults to term_in). */--x----` -/** * Builds a meta query entry. * * @since 4.7.19 * * @param string $meta_key * @param string|array $meta_value * @param string $compare * @param string $type_or_format The type of value to compare * * @return array|null * @throws Tribe__Repository__Usage_Error If trying to compare multiple values with a single * comparison operator. *//** * Validates that a comparison operator is used with the correct type of values. * * This is just a wrap to signal this kind of code error not in bad SQL error but * with a visible exception. * * @since 4.7.19 * * @param string $compare A SQL comparison operator * @param string|array $meta_key * @param mixed $meta_value * * @throws Tribe__Repository__Usage_Error */i/** * Returns the delete callback function or method to use to delete posts. * * @since 4.9.5 * * @param int|array $to_delete The post ID to delete or an array of post IDs to delete. * @param bool $background Whether the callback will be used in background delete operations or not. * * @return callable The callback to use. */@(-p(-@R@i/** * Returns the update callback function or method to use to update posts. * * @since 4.9.5 * * @param int|array $to_update The post ID to update or an array of post IDs to update. * @param bool $background Whether the callback will be used in background update operations or not. * * @return callable The callback to use. */-@z H*-@`(/** * Returns a value trying to fetch it from an array first and then * reading it from the meta. * * @since 4.9.5 * * @param array $postarr The array to look into. * @param string $key The key to retrieve. * @param int|null $post_id The post ID to fetch the value for. * @param mixed $default The default value to return if nothing was found. * * @return mixed The found value if any. */ldrP?^r``@_"rrp"r @-r G5r H]6r vD9rp w_r <,r >%8rP >@M(yZ+f.7ldrP/?Zr%h@0prP`0B_rp0<}1rp(0p_r0<,r0>%8rp1>yZyZ՜ F Ff.7/- /-`0-p0-=D\ eventDisplayD-set_viewlugct⟚sql_slugE85Fw eventDatergsafeaturedz  (\d{4}-\d{2})E85Fw eventDateer {{ day }}{{ featured }}=D\ eventDisplayeVD&ebuild_tax_query viewOption8^Clis_single_event=D\ eventDisplay postMessagest6VЧ max_font_sizeru%bx widget_in_use eventDisplaye,i ate {{ list }}eafeatured[,t section_slugd-Rl template_varsyj[yNLo alias-slugst_=D\ eventDisplay{{ featured }}0l-l-1 ?queue_priority separatorlshydy {{ month }}HM-W9 5r tribe-notice-\Cinjected_posts=D\ eventDisplay {{ month }}<-Xȭk get_view_htmlt sanitize_keyteXȭk get_view_html eventDisplayyɼup disable_v1bel organizersxtafeaturedZ,>g䔔get_view_labelYUDw is_activeport@ =l  {{ page }}e{{ featured }} eventDisplay tribe_vieweC&Xq has_filterE85Fw eventDatergs=D\ eventDisplay {{ page }}ters{{ featured }}=D\ eventDisplayE85Fw eventDateltersafeaturedilters=D\ eventDisplayr(Ii( tribe-theme- eventDisplay tribe_view~~registerhemeafeaturedomise=D\ eventDisplay{{ featured }}F<8gget_admin_data end_date_utcP-BG? button_colort9-L async_delete=D\ eventDisplaystart_date_utc Uuw add_hooksrsectC-D4Yr/delete_callbackClis_single_evento-ZQ)@Q get_arguments_e inject_postsE{{ featured }}{{page}}gafeaturedmeТ-.(c _deprecatedCEafeaturedomise@f 0c'p['w @6-{{ featured }}hQ,H; _template_vars=D\ eventDisplayE85Fw eventDatee_,E|s> title_coloronsE-Dkday_datetersjafeaturedtersP[cr٧primary_id_base=D\ eventDisplayE85Fw eventDateeF-&option_widget_:args_to_context{{ featured }}W,+;w mock_pagers=D\ eventDisplayE85Fw eventDatee start_date|>register_assets=D\ eventDisplayIM# should_displayE85Fw eventDateers (\d{4}-\d{2})O-WŁ matches_regexL async_deleteV,erATribe\Widget\__>phget_mocked_pageafeaturedomise permalink_all8^,,wE enabled_views7_oJp get_methoderh (\d{4}-\d{2})ߢ>b __constructtrx%&widget_location^'@k (o-p^'g- tribe-common=D\ eventDisplay {{ today }}st~~registers accent_colorrsnprioritytns{{ featured }}=D\ eventDisplayM-l p event-pastxt@Q,ON- displays_onons@έk get_view_slug8D-J9`ڦget_filter_nameJ9`ڦget_filter_name {{ today }}-IaJEW is_renderedt = DISABLED_arg1-$r set_noticeces {{ list }}rs{{ featured }}Q[canonical_args eventDisplay tribe_view=D\ eventDisplayafeaturedme@'` 8-e!_ *contentsek,,\venue_post_typenpriorityntsdVL async_update tribe-commontg-h噁url_componentsO-@`{6&(p%W8 Ps s 0< pa'@8,W =l `{6(&(@Qr pa'@8,g՜r[s s r[^`\'@| *w y c='=' s p%EW8 Pв*^'^' =l W =l  =l (/k (/k  (@s %0%(/k (/k tR ^'^`?`k `m @ƛ ̛8^,`^Nk hQ6pa'P/k P/k @$w 8k 8k  ̛ ̛@k @k pm,pm,@s @s  L@s @k s pa'pa'@XS p;`6l PE-@t =U, ̛Zr!,Xp_rX<}rPXITrPZpRZrPZtRZrp`Zt_rZ<}r`Zr` \rp\ArP!_2r_c:r_+ZrXi8`p_r`<}r `Vr0bc:r0@b+%8r c>?rpf+ Yr`Hf=rPfC[r@fITrPhipRZrPitRZr`itF`ri< YrPxr=W$rPr6$rEh rR-rr7 .rr8ArPrArP`ruF`rr<ITrPtp_rt<}rtITrPPvpRZrPPvt8>r``vBF`rv<Vrxc:r@x+%8ry>?rp|+ Yr`|=rP|C[r |%8r0}>33y )'  L''@M( v, , , v,EEy (*k `0($88EEy@M( v, , , v,f.7ZrH~ p_r<}rPITrPpRZrPtRZrp`t_r<}r`r` rpArP!2rc:r+ZrXi8p_r<}r Vr0c:r0@+%8r >?rp+ Yr`H=rPC[r@ $fields ) ); } /** * @deprecated 3.0 * @return string */ function woocommerce_product_post_type_link( $permalink, $post ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_product_post_type_link' ); return wc_product_post_type_link( $permalink, $post ); } /** * @deprecated 3.0 * @return string */ function woocommerce_placeholder_img_src() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_placeholder_img_src' ); return wc_placeholder_img_src(); } /** * @deprecated 3.0 * @return string */ function woocommerce_placeholder_img( $size = 'woocommerce_thumbnail' ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_placeholder_img' ); return wc_placeholder_img( $size ); } /** * @deprecated 3.0 * @return string */ function woocommerce_get_formatted_variation( $variation = '', $flat = false ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_get_formatted_variation' ); return wc_get_formatted_variation( $variation, $flat ); } /** * @deprecated 3.0 * @return void */ function woocommerce_scheduled_sales() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_scheduled_sales' ); wc_scheduled_sales(); } /** * @deprecated 3.0 * @return array */ function woocommerce_get_attachment_image_attributes( $attr ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_get_attachment_image_attributes' ); return wc_get_attachment_image_attributes( $attr ); } /** * @deprecated 3.0 * @return array */ function woocommerce_prepare_attachment_for_js( $response ) { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_prepare_attachment_for_js' ); return wc_prepare_attachment_for_js( $response ); } /** * @deprecated 3.0 * @return void */ function woocommerce_track_product_view() { wc_deprecated_function( __FUNCTION__, '3.0', 'wc_track_product_view' ); wc_track_product_view(); } /** * @deprecated 2.3 has no replacement * @return void */ function woocommerce_compile_less_styles() { wc_deprecated_function( 'woocommerce_compile_less_styles', '2.3' ); } /** * woocommerce_calc_shipping was an option used to determine if shipping was enabled prior to version 2.6.0. This has since been replaced with wc_shipping_enabled() function and * the woocommerce_ship_to_countries setting. * @deprecated 2.6.0 * @return string */ function woocommerce_calc_shipping_backwards_compatibility( $value ) { if ( Constants::is_defined( 'WC_UPDATING' ) ) { return $value; } return 'disabled' === get_option( 'woocommerce_ship_to_countries' ) ? 'no' : 'yes'; } add_filter( 'pre_option_woocommerce_calc_shipping', 'woocommerce_calc_shipping_backwards_compatibility' ); /** * @deprecated 3.0.0 * @see WC_Structured_Data class * * @return string */ function woocommerce_get_product_schema() { wc_deprecated_function( 'woocommerce_get_product_schema', '3.0' ); global $product; $schema = "Product"; // Downloadable product schema handling if ( $product->is_downloadable() ) { switch ( $product->download_type ) { case 'application' : $schema = "SoftwareApplication"; break; case 'music' : $schema = "MusicAlbum"; break; default : $schema = "Product"; break; } } return 'http://schema.org/' . $schema; } /** * Save product price. * * This is a private function (internal use ONLY) used until a data manipulation api is built. * * @deprecated 3.0.0 * @param int $product_id * @param float $regular_price * @param float $sale_price * @param string $date_from * @param string $date_to * @return void */ function _wc_save_product_price( $product_id, $regular_price, $sale_price = '', $date_from = '', $date_to = '' ) { wc_doing_it_wrong( '_wc_save_product_price()', 'This function is not for developer use and is deprecated.', '3.0' ); $product_id = absint( $product_id ); $regular_price = wc_format_decimal( $regular_price ); $sale_price = '' === $sale_price ? '' : wc_format_decimal( $sale_price ); $date_from = wc_clean( $date_from ); $date_to = wc_clean( $date_to ); update_post_meta( $product_id, '_regular_price', $regular_price ); update_post_meta( $product_id, '_sale_price', $sale_price ); // Save Dates update_post_meta( $product_id, '_sale_price_dates_from', $date_from ? strtotime( $date_from ) : '' ); update_post_meta( $product_id, '_sale_price_dates_to', $date_to ? strtotime( $date_to ) : '' ); if ( $date_to && ! $date_from ) { $date_from = strtotime( 'NOW', current_time( 'timestamp' ) ); update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); } // Update price if on sale if ( '' !== $sale_price && '' === $date_to && '' === $date_from ) { update_post_meta( $product_id, '_price', $sale_price ); } else { update_post_meta( $product_id, '_price', $regular_price ); } if ( '' !== $sale_price && $date_from && strtotime( $date_from ) < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { update_post_meta( $product_id, '_price', $sale_price ); } if ( $date_to && strtotime( $date_to ) < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { update_post_meta( $product_id, '_price', $regular_price ); update_post_meta( $product_id, '_sale_price_dates_from', '' ); update_post_meta( $product_id, '_sale_price_dates_to', '' ); } } /** * Return customer avatar URL. * * @deprecated 3.1.0 * @since 2.6.0 * @param string $email the customer's email. * @return string the URL to the customer's avatar. */ function wc_get_customer_avatar_url( $email ) { // Deprecated in favor of WordPress get_avatar_url() function. wc_deprecated_function( 'wc_get_customer_avatar_url()', '3.1', 'get_avatar_url()' ); return get_avatar_url( $email ); } /** * WooCommerce Core Supported Themes. * * @deprecated 3.3.0 * @since 2.2 * @return string[] */ function wc_get_core_supported_themes() { wc_deprecated_function( 'wc_get_core_supported_themes()', '3.3' ); return array( 'twentyseventeen', 'twentysixteen', 'twentyfifteen', 'twentyfourteen', 'twentythirteen', 'twentyeleven', 'twentytwelve', 'twentyten' ); } /** * Get min/max price meta query args. * * @deprecated 3.6.0 * @since 3.0.0 * @param array $args Min price and max price arguments. * @return array */ function wc_get_min_max_price_meta_query( $args ) { wc_deprecated_function( 'wc_get_min_max_price_meta_query()', '3.6' ); $current_min_price = isset( $args['min_price'] ) ? floatval( $args['min_price'] ) : 0; $current_max_price = isset( $args['max_price'] ) ? floatval( $args['max_price'] ) : PHP_INT_MAX; return apply_filters( 'woocommerce_get_min_max_price_meta_query', array( 'key' => '_price', 'value' => array( $current_min_price, $current_max_price ), 'compare' => 'BETWEEN', 'type' => 'DECIMAL(10,' . wc_get_price_decimals() . ')', ), $args ); } /** * When a term is split, ensure meta data maintained. * * @deprecated 3.6.0 * @param int $old_term_id Old term ID. * @param int $new_term_id New term ID. * @param string $term_taxonomy_id Term taxonomy ID. * @param string $taxonomy Taxonomy. * @return void */ function wc_taxonomy_metadata_update_content_for_split_terms( $old_term_id, $new_term_id, $term_taxonomy_id, $taxonomy ) { wc_deprecated_function( 'wc_taxonomy_metadata_update_content_for_split_terms', '3.6' ); } /** * WooCommerce Term Meta API. * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value. * @param string $prev_value Previous value. (default: ''). * @return bool */ function update_woocommerce_term_meta( $term_id, $meta_key, $meta_value, $prev_value = '' ) { wc_deprecated_function( 'update_woocommerce_term_meta', '3.6', 'update_term_meta' ); return function_exists( 'update_term_meta' ) ? update_term_meta( $term_id, $meta_key, $meta_value, $prev_value ) : update_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value, $prev_value ); } /** * WooCommerce Term Meta API. * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value. * @param bool $unique Make meta key unique. (default: false). * @return bool */ function add_woocommerce_term_meta( $term_id, $meta_key, $meta_value, $unique = false ) { wc_deprecated_function( 'add_woocommerce_term_meta', '3.6', 'add_term_meta' ); return function_exists( 'add_term_meta' ) ? add_term_meta( $term_id, $meta_key, $meta_value, $unique ) : add_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value, $unique ); } /** * WooCommerce Term Meta API * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $meta_key Meta key. * @param mixed $meta_value Meta value (default: ''). * @param bool $deprecated Deprecated param (default: false). * @return bool */ function delete_woocommerce_term_meta( $term_id, $meta_key, $meta_value = '', $deprecated = false ) { wc_deprecated_function( 'delete_woocommerce_term_meta', '3.6', 'delete_term_meta' ); return function_exists( 'delete_term_meta' ) ? delete_term_meta( $term_id, $meta_key, $meta_value ) : delete_metadata( 'woocommerce_term', $term_id, $meta_key, $meta_value ); } /** * WooCommerce Term Meta API * * WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. * This function serves as a wrapper, using the new table if present, or falling back to the WC table. * * @deprecated 3.6.0 * @param int $term_id Term ID. * @param string $key Meta key. * @param bool $single Whether to return a single value. (default: true). * @return mixed */ function get_woocommerce_term_meta( $term_id, $key, $single = true ) { wc_deprecated_function( 'get_woocommerce_term_meta', '3.6', 'get_term_meta' ); return function_exists( 'get_term_meta' ) ? get_term_meta( $term_id, $key, $single ) : get_metadata( 'woocommerce_term', $term_id, $key, $single ); } /** * Registers the default log handler. * * @deprecated 8.6.0 * @since 3.0 * @param array $handlers Handlers. * @return array */ function wc_register_default_log_handler( $handlers = array() ) { wc_deprecated_function( 'wc_register_default_log_handler', '8.6.0' ); $default_handler = wc_get_container()->get( Settings::class )->get_default_handler(); array_push( $handlers, new $default_handler() ); return $handlers; } /** * Get a log file path. * * @deprecated 8.6.0 * @since 2.2 * * @param string $handle name. * @return string the log file path. */ function wc_get_log_file_path( $handle ) { wc_deprecated_function( 'wc_get_log_file_path', '8.6.0' ); $directory = LoggingUtil::get_log_directory(); $file_id = LoggingUtil::generate_log_file_id( $handle, null, time() ); $hash = LoggingUtil::generate_log_file_hash( $file_id ); return "{$directory}{$file_id}-{$hash}.log"; } /** * Get a log file name. * * @since 3.3 * * @param string $handle Name. * @return string The log file name. */ function wc_get_log_file_name( $handle ) { wc_deprecated_function( 'wc_get_log_file_name', '8.6.0' ); $file_id = LoggingUtil::generate_log_file_id( $handle, null, time() ); $hash = LoggingUtil::generate_log_file_hash( $file_id ); return "{$file_id}-{$hash}"; } /** * Load the persistent cart. * * @param string $user_login User login. * @param WP_User $user User data. * @deprecated 2.3 * @return void */ function wc_load_persistent_cart( $user_login, $user ) { if ( ! $user || ! apply_filters( 'woocommerce_persistent_cart_enabled', true ) ) { return; } $saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart_' . get_current_blog_id(), true ); if ( ! $saved_cart ) { return; } $cart = WC()->session->cart; if ( empty( $cart ) || ! is_array( $cart ) || 0 === count( $cart ) ) { WC()->session->cart = $saved_cart['cart']; } } if ( ! function_exists( 'woocommerce_product_subcategories' ) ) { /** * This is a legacy function which used to check if we needed to display subcats and then output them. It was called by templates. * * From 3.3 onwards this is all handled via hooks and the woocommerce_maybe_show_product_subcategories function. * * Since some templates have not updated compatibility, to avoid showing incorrect categories this function has been deprecated and will * return nothing. Replace usage with woocommerce_output_product_categories to render the category list manually. * * This is a legacy function which also checks if things should display. * Themes no longer need to call these functions. It's all done via hooks. * * @deprecated 3.3.1 @todo Add a notice in a future version. * @param array $args Arguments. * @return null|boolean */ function woocommerce_product_subcategories( $args = array() ) { $defaults = array( 'before' => '', 'after' => '', 'force_display' => false, ); $args = wp_parse_args( $args, $defaults ); if ( $args['force_display'] ) { // We can still render if display is forced. woocommerce_output_product_categories( array( 'before' => $args['before'], 'after' => $args['after'], 'parent_id' => is_product_category() ? get_queried_object_id() : 0, ) ); return true; } else { // Output nothing. woocommerce_maybe_show_product_subcategories will handle the output of cats. $display_type = woocommerce_get_loop_display_mode(); if ( 'subcategories' === $display_type ) { // This removes pagination and products from display for themes not using wc_get_loop_prop in their product loops. @todo Remove in future major version. global $wp_query; if ( $wp_query->is_main_query() ) { $wp_query->post_count = 0; $wp_query->max_num_pages = 0; } } return 'subcategories' === $display_type || 'both' === $display_type; } } } /** * Products RSS Feed. * * @deprecated 2.6 * @return void */ function wc_products_rss_feed() { wc_deprecated_function( 'wc_products_rss_feed', '2.6' ); } if ( ! function_exists( 'woocommerce_reset_loop' ) ) { /** * Reset the loop's index and columns when we're done outputting a product loop. * * @deprecated 3.3 * @return void */ function woocommerce_reset_loop() { wc_reset_loop(); } } if ( ! function_exists( 'woocommerce_product_reviews_tab' ) ) { /** * Output the reviews tab content. * * @deprecated 2.4.0 Unused. * @return void */ function woocommerce_product_reviews_tab() { wc_deprecated_function( 'woocommerce_product_reviews_tab', '2.4' ); } } /** * Get the URL to the WooCommerce Legacy REST API. * * Note that as of WooCommerce 9.0 the WooCommerce Legacy REST API has been moved to a dedicated extension, * and the implementation of its root endpoint in WooCommerce core is now just a stub that will always return an error. * See the setup_legacy_api_stub method in includes/class-woocommerce.php and: * https://developer.woocommerce.com/2023/10/03/the-legacy-rest-api-will-move-to-a-dedicated-extension-in-woocommerce-9-0/ * * @deprecated 9.0.0 The Legacy REST API has been removed from WooCommerce core. * * @since 2.1 * @param string $path an endpoint to include in the URL. * @return string the URL. */ function get_woocommerce_api_url( $path ) { $url = get_home_url( null, 'wc-api/v3/', is_ssl() ? 'https' : 'http' ); if ( ! empty( $path ) && is_string( $path ) ) { $url .= ltrim( $path, '/' ); } return $url; } BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Glasser Canada - ECPv6.16.3//NONSGML v1.0//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALNAME:Glasser Canada X-ORIGINAL-URL:https://glassercanada.com X-WR-CALDESC:Events for Glasser Canada REFRESH-INTERVAL;VALUE=DURATION:PT1H X-Robots-Tag:noindex X-PUBLISHED-TTL:PT1H BEGIN:VTIMEZONE TZID:America/Toronto BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20250309T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20251102T060000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20260308T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20261101T060000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:20270314T070000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:20271107T060000 END:STANDARD END:VTIMEZONE BEGIN:VTIMEZONE TZID:America/Moncton BEGIN:DAYLIGHT TZOFFSETFROM:-0400 TZOFFSETTO:-0300 TZNAME:ADT DTSTART:20250309T060000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0300 TZOFFSETTO:-0400 TZNAME:AST DTSTART:20251102T050000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0400 TZOFFSETTO:-0300 TZNAME:ADT DTSTART:20260308T060000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0300 TZOFFSETTO:-0400 TZNAME:AST DTSTART:20261101T050000 END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0400 TZOFFSETTO:-0300 TZNAME:ADT DTSTART:20270314T060000 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0300 TZOFFSETTO:-0400 TZNAME:AST DTSTART:20271107T050000 END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTART;TZID=America/Toronto:20260618T090000 DTEND;TZID=America/Toronto:20260620T170000 DTSTAMP:20260615T032129 CREATED:20260527T134058Z LAST-MODIFIED:20260527T140321Z UID:60824-1781773200-1781974800@glassercanada.com SUMMARY:Advanced Intensive DESCRIPTION:The Advanced Intensive deepens understanding of Choice Theory® by exploring more complex applications\, ethical considerations\, and systemic dynamics. Learning expands beyond self and individual interactions to groups\, organizations\, and classrooms. \nYou develop greater flexibility and insight\, allowing you to respond effectively to resistance\, complexity\, and emotionally charged situations with confidence and care. \n\nThe Glasser Advanced Intensive Training is the third step toward full Choice Theory® and Reality Therapy (CT/RT) certification. It is an experiential\, in-depth 20- to 30-hour workshop that helps participants master Choice Theory concepts\, refine practical counselling and leadership skills\, and actively process role-plays. \n\nInstructors\nSenior Faculty: Jean Seville Suffield\, DNM.\, and Nancy D. Herrick\, M.ED. URL:https://glassercanada.com/evt/advanced-intensive-2026-06/ LOCATION:Saskatchewan CATEGORIES:Online Virtual ATTACH;FMTTYPE=image/jpeg:https://glassercanada.com/wp-content/uploads/2026/05/Advanced-Intensive.jpg ORGANIZER;CN="Choice-Makers":MAILTO:jeanseville@hotmail.com END:VEVENT BEGIN:VEVENT DTSTART;TZID=America/Toronto:20260427T190000 DTEND;TZID=America/Toronto:20260427T203000 DTSTAMP:20260615T032129 CREATED:20260422T134210Z LAST-MODIFIED:20260422T135807Z UID:60779-1777316400-1777321800@glassercanada.com SUMMARY:Ventures “The Show” - 2026-04-27 DESCRIPTION:JOIN US FOR AN INTERACTIVE PRESENTATION ON \nPROMOTING CHOICE THEORY\nThe use of chat-based tools can play a powerful role in promoting the ideas of Choice Theory. In this interactive presentation\, Pat will discuss how Chat can generate useful “starting points” designed to engage interest from people unfamiliar with Glasser’s work. \nEvent Details\nMonday\, April 27\, 2026 \n16:00 PT | 19:00pm ET \nRegistration\nRegister in advance for this event to get link for this online event. \nRegister \nPrior to this presentation\nPlease go to ChatGPT (https://chatgpt.com/) and ask chat to – \nProvide a paragraph on the benefits of applying Choice theory to (a topic of your area of interest). \nYou will have an opportunity to share your results. As a group we will discuss the usefulness of this process in supporting the future of WG International and the Member organizations. \nAbout the Presenter\nDR. PATRICIA ROBEY\nPatricia Robey\, Ed.D.\, LPC is a Professor of Counseling at Governors State University and a Licensed Professional Counselor. Dr. Robey is also a Senior faculty member of William Glasser International and has provided training and mentorship on applications of Choice Theory internationally for over 20 years. In addition to teaching\, she has contributed to professional literature\, videos\, and interviews focusing on counseling\, education\, and Glasser-based approaches. Her collaborative work has explored how Choice Theory principles can be applied to schools and leadership contexts with a goal of fostering positive environments and effective interpersonal relationships. URL:https://glassercanada.com/evt/ventures-the-show-2026-04-27/ LOCATION:Online Virtual CATEGORIES:Online Virtual ATTACH;FMTTYPE=image/png:https://glassercanada.com/wp-content/uploads/2026/04/Ventures-The-Show-2026-04-27.png END:VEVENT BEGIN:VEVENT DTSTART;VALUE=DATE:20260417 DTEND;VALUE=DATE:20260418 DTSTAMP:20260615T032129 CREATED:20260103T164301Z LAST-MODIFIED:20260220T142715Z UID:60758-1776384000-1776470399@glassercanada.com SUMMARY:Inner Balance — April 2026 Registration Deadline | Online DESCRIPTION:Build an Unshakeable Foundation\nMost of us know what we “should” do\, but when stress hits\, our system still takes over. Old patterns run the show. Presence disappears. Reactions happen before we can redirect them. \nInner Balance helps you understand why this happens\, and teaches you how to shift it from the inside out. \nInstead of pushing harder or relying on willpower\, you’ll learn to work with your mind\, emotions and nervous system in a way that restores clarity\, steadiness\, and real choice. \nInner Balance is for anyone who feels the strain of doing life the old way and knows something deeper is calling them forward. \nIn Inner Balance\, you’ll learn how to: \n\nRecognize the moment you slip out of center\nSteady your nervous system so you don’t get swept into old reactions\nAccess your values and show up as the person you intend to be\nStrengthen the relationships that matter most\nCreate your life from clarity instead of coping\n\nThis program helps you understand how your internal ecosystem works so you can stay aligned even when life gets challenging. \nUpcoming Program\nApril 21\, to May 26\, 2026 \nLive Coaching Sessions:\nEvery Tuesday at 6:30 PM PST\nCan’t make the live session? We got you covered. Each session is recorded for you. \nRegister now to start building the skills\, gaining clarity\, and inner stability that make meaningful change possible. \nA portion of the fees are donated to Glasser Canada. URL:https://glassercanada.com/evt/inner-balance-april-2026-registration-deadline-online/ LOCATION:Online Virtual CATEGORIES:Online Virtual ATTACH;FMTTYPE=image/jpeg:https://glassercanada.com/wp-content/uploads/2025/03/Woman-practicing-yoga-at-sunset-min-erqo.jpg ORGANIZER;CN="Expanding You":MAILTO:hello@expandingyou.com END:VEVENT END:VCALENDAR