Meety: Appointment Booking

Meety: Appointment Booking Logo

Built for Shopify

Meety: Appointment Booking

Rating

0

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

4-Sep-23

Meety: Appointment Booking Logo

Built for Shopify

Meety: Appointment Booking

Rating

0

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

4-Sep-23

Meety: Appointment Booking Logo

Built for Shopify

Meety: Appointment Booking

Rating

0

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

4-Sep-23

Take bookings with an easy scheduling calendar. All-in-one booking app for services and events.

Meety is an appointment booking solution designed to add a customizable scheduling calendar to your products or services. With seamless calendar sync and native integrations (Zoom, Google Meet, Outlook, Teams, Klaviyo, Zapier), Meety supports subscriptions, bundles, multi-booking, deposits, and automated waitlists. Your business can deliver a fully tailored customer experience with multi-language support, custom question forms, personalized email notifications, and a dedicated customer portal.

Categories:

Event booking, Digital products

Integrations:

Checkout, Customer accounts, Shopify POS, Shopify Flow, Shopify Admin, Appointment, Booking service, Calendly, Outlook/Google calendar, Zapier, Zoom

Checkout, Customer accounts, Shopify POS, Shopify Flow, Shopify Admin, Appointment, Booking service, Calendly, Outlook/Google calendar, Zapier, Zoom

Languages:

English, French, Chinese (Simplified), Chinese (Traditional), German, Japanese, Italian, Portuguese (Brazil), Portuguese (Portugal), Spanish, Vietnamese, Dutch, Hindi

English, French, Chinese (Simplified), Chinese (Traditional), German, Japanese, Italian, Portuguese (Brazil), Portuguese (Portugal), Spanish, Vietnamese, Dutch, Hindi

Filter Reviews

Operator reports

0

%

Recommended

(

1

reviews

)
Photo of Reviewer Ghulam M.

Ghulam M.

Role:

Owner

Category:

Books, Music & Video

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Jan 22, 2025

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

No

Importance:

Critical for me to do my job

What exceeded expectations

Good support, decent UI. Many customizations. Limited number of widgets.

What was disappointing

Takes ages to setup. One of my clients who run a yoga studio and also sell products, had to uninstall for them. Every schedule needs to be configured separately. No way to bulk update. Super slow interface.

Photo of Reviewer Ghulam M.

Ghulam M.

Role:

Owner

Category:

Books, Music & Video

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Jan 22, 2025

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

No

Importance:

Critical for me to do my job

What exceeded expectations

Good support, decent UI. Many customizations. Limited number of widgets.

What was disappointing

Takes ages to setup. One of my clients who run a yoga studio and also sell products, had to uninstall for them. Every schedule needs to be configured separately. No way to bulk update. Super slow interface.

Related Apps

import * as React from "react" type Props = { name: string slug: string description: string image: string developer: string categories: string pricing: string launchedAt: string dateModified: string ratingValue: number ratingCount: number faqQ1: string faqA1: string faqQ2: string faqA2: string faqQ3: string faqA3: string faqQ4: string faqA4: string faqQ5: string faqA5: string } export function SchemaMarkup(props: Props) { const { name, slug, description, image, developer, categories, pricing, launchedAt, dateModified, ratingValue, ratingCount, faqQ1, faqA1, faqQ2, faqA2, faqQ3, faqA3, faqQ4, faqA4, faqQ5, faqA5 } = props const scriptContent = ` (function () { var ORIGIN = window.location.origin; var SAT = { "Very Satisfied": 100, "Neutral": 50, "Not Satisfied": 0 }; var AGG_NOTE = "Percentage of vetted Shopify merchants and agency operators who recommend this app, based on first-party reviews collected by app store research."; function read(root, key) { if (!root) return ""; var el = root.querySelector('[data-k="' + key + '"]'); return el ? el.textContent.trim() : ""; } function iso(v) { if (!v) return null; var d = new Date(v); return isNaN(d) ? null : d.toISOString().slice(0, 10); } function notes(text) { return { "@type": "ItemList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": text }] }; } var root = document.getElementById("asr-seo-data"); if (!root) return; var NAME = read(root, "name"); var SLUG = read(root, "slug"); if (!NAME || !SLUG) return; var PAGE_URL = ORIGIN + "/shopify-app-reviews/" + SLUG; function collectReviews() { var out = []; Array.prototype.forEach.call( document.querySelectorAll(".asr-review-seo"), function (n) { var author = read(n, "author"); var pos = read(n, "positive"); var neg = read(n, "negative"); if (!author || (!pos && !neg)) return; var r = { "@type": "Review", "author": { "@type": "Person", "name": author }, "itemReviewed": { "@id": PAGE_URL + "#app" } }; var d = iso(read(n, "date")); if (d) r.datePublished = d; var s = read(n, "satisfaction"); if (s && SAT.hasOwnProperty(s)) { r.reviewRating = { "@type": "Rating", "ratingValue": String(SAT[s]), "bestRating": "100", "worstRating": "0", "alternateName": s }; } if (pos) r.positiveNotes = notes(pos); if (neg) r.negativeNotes = notes(neg); out.push(r); } ); return out; } function buildGraph(reviews) { var app = { "@type": "SoftwareApplication", "@id": PAGE_URL + "#app", "name": NAME, "url": PAGE_URL, "applicationCategory": "BusinessApplication", "operatingSystem": "Web (Shopify)" }; var v; if ((v = read(root, "description"))) app.description = v; if ((v = read(root, "image"))) app.image = v.replace(/&/g, "&"); if ((v = read(root, "developer"))) app.author = { "@type": "Organization", "name": v }; if ((v = read(root, "categories"))) app.keywords = v; if ((v = read(root, "pricing"))) { app.offers = { "@type": "Offer", "price": "0", "priceCurrency": "USD", "description": v }; } if ((v = iso(read(root, "launchedAt")))) app.datePublished = v; if ((v = iso(read(root, "dateModified")))) app.dateModified = v; if (reviews.length) app.review = reviews; var rv = read(root, "ratingValue"); var rc = parseInt(read(root, "ratingCount"), 10); if (reviews.length && rv && rc > 0) { app.aggregateRating = { "@type": "AggregateRating", "ratingValue": String(parseFloat(rv)), "bestRating": "100", "worstRating": "0", "ratingCount": String(rc), "description": AGG_NOTE }; } var graph = [app]; var faq = []; for (var i = 1; i <= 5; i++) { var q = read(root, "faqQ" + i); var a = read(root, "faqA" + i); if (q && a) { faq.push({ "@type": "Question", "name": q, "acceptedAnswer": { "@type": "Answer", "text": a } }); } } if (faq.length) { graph.push({ "@type": "FAQPage", "@id": PAGE_URL + "#faq", "mainEntity": faq }); } graph.push({ "@type": "BreadcrumbList", "@id": PAGE_URL + "#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": ORIGIN + "/" }, { "@type": "ListItem", "position": 2, "name": "Shopify App Reviews", "item": ORIGIN + "/shopify-app-reviews" }, { "@type": "ListItem", "position": 3, "name": NAME, "item": PAGE_URL } ] }); return graph; } function build() { var reviews = collectReviews(); var old = document.getElementById("asr-jsonld"); if (old && old.dataset.count === String(reviews.length)) return; if (old) old.remove(); var s = document.createElement("script"); s.type = "application/ld+json"; s.id = "asr-jsonld"; s.dataset.count = String(reviews.length); s.textContent = JSON.stringify({ "@context": "https://schema.org", "@graph": buildGraph(reviews) }); document.head.appendChild(s); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", build); } else { build(); } [300, 900, 2000].forEach(function (ms) { setTimeout(build, ms); }); })(); ` return ( <> {/* HIDDEN DIV – provjeri da li je ID tačan */} {/* SCRIPT TAG – OBAVEZNO zatvoren */} </> ) } SchemaMarkup.defaultProps = { name: "Naziv aplikacije", slug: "slug-aplikacije", description: "", image: "", developer: "", categories: "", pricing: "", launchedAt: "", dateModified: "", ratingValue: 0, ratingCount: 0, faqQ1: "", faqA1: "", faqQ2: "", faqA2: "", faqQ3: "", faqA3: "", faqQ4: "", faqA4: "", faqQ5: "", faqA5: "" }