https://github.com/tymeslot/tymeslot-wordpress
Official Tymeslot booking & scheduling plugin for WordPress — inline, popup, floating button, or Gutenberg block. Works with Tymeslot Cloud and self-hosted instances.
https://github.com/tymeslot/tymeslot-wordpress
appointments booking calendly-alternative gutenberg-block scheduling tymeslot wordpress wordpress-plugin
Last synced: 2 days ago
JSON representation
Official Tymeslot booking & scheduling plugin for WordPress — inline, popup, floating button, or Gutenberg block. Works with Tymeslot Cloud and self-hosted instances.
- Host: GitHub
- URL: https://github.com/tymeslot/tymeslot-wordpress
- Owner: Tymeslot
- License: gpl-2.0
- Created: 2026-06-24T10:59:53.000Z (8 days ago)
- Default Branch: main
- Last Pushed: 2026-06-24T11:31:02.000Z (8 days ago)
- Last Synced: 2026-06-24T13:11:48.809Z (8 days ago)
- Topics: appointments, booking, calendly-alternative, gutenberg-block, scheduling, tymeslot, wordpress, wordpress-plugin
- Language: PHP
- Size: 919 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Tymeslot for WordPress
The official WordPress plugin for [Tymeslot](https://tymeslot.app) — the open-source meeting-scheduling platform.
Add your Tymeslot booking page to any WordPress site with a **Gutenberg block**, a **`[tymeslot]` shortcode**, or a **floating button** — no code required. Works with both Tymeslot Cloud (`tymeslot.app`) and self-hosted instances.

## Features
- **Four embed modes** — inline, popup, floating button, and direct link.
- **Gutenberg block** — configure everything from the editor sidebar.
- **Shortcode** — `[tymeslot username="you" mode="inline"]`.
- **Embed generator** — a branded settings screen that builds, previews, and copies snippets, mirroring the in-app Tymeslot generator.
- **Live embedding check** — a browser-side probe loads your real booking page in the Setup tab and shows, at a glance, whether this site can embed it (Tymeslot blocks embedding by default) and how to fix it if not.
- **Embed guard** — if a booking page can’t be embedded (domain not allow-listed), the front end shows a clean message in place of the booker instead of letting the Tymeslot homepage render inside your page, with an admin-only hint on how to fix it.
- **Self-hosting friendly** — point the plugin at any Tymeslot instance.
- **On-brand & accessible** — booking themes (Quill, Rhythm), layout, and language options. Your account's brand colour is applied automatically.
## How it works
The plugin is a thin, well-behaved wrapper around Tymeslot’s existing embed runtime (`embed.js`). It generates markup **byte-identical** to the snippets produced by the Tymeslot dashboard’s own embed generator — the snippet engine in `includes/class-tymeslot-snippet.php` is a verified PHP port of the Core Elixir generator. The Gutenberg block and the shortcode both render through that single engine, so they can never drift apart.
No booking data touches WordPress: the booker runs in an iframe served by your Tymeslot instance. The plugin stores only your settings.
## Requirements
- WordPress 6.4+
- PHP 7.4+
- A Tymeslot account (free or Pro), cloud or self-hosted.
## Installation (from source)
```bash
git clone tymeslot
cd tymeslot
npm install # block tooling
npm run build # compiles the Gutenberg block into /build (already committed)
```
Copy the folder into `wp-content/plugins/` and activate it, then open **Tymeslot** in the admin menu.
> **Enable embedding:** Tymeslot blocks embedding by default. In your Tymeslot dashboard go to **Embed → Security** and add your WordPress site’s domain, or the booker will render blank. The Setup tab’s live embedding status confirms this for you.
## Development
| Command | Purpose |
|---------|---------|
| `npm run start` | Watch-build the block during development |
| `npm run build` | Production build of the block (output committed to `/build`) |
| `npm run lint:js` | Lint block JavaScript |
| `composer lint` | PHP CodeSniffer against WordPress standards |
### Snippet parity
The snippet engine is verified byte-for-byte against the live Tymeslot Core generator (`apps/tymeslot/lib/tymeslot_web/live/dashboard/embed_settings/helpers.ex`). If the Core generator changes, re-run the parity check and update `includes/class-tymeslot-snippet.php` accordingly.
### Listing assets
Branded SVG masters live in `.wordpress-org/`. Regenerate the wordpress.org PNGs with:
```bash
./.wordpress-org/generate-assets.sh
```
## License
This plugin is licensed **GPL-2.0-or-later** (as required for the WordPress.org Plugin Directory) — see `LICENSE`.
The Tymeslot platform itself — the Core Elixir/Phoenix application this plugin embeds — is licensed **AGPL-3.0**. The plugin and Core are independent programs: the plugin only embeds a Core booking page in an iframe (no code linking), so the two licences apply separately and there's no conflict with the plugin's GPL-2.0-or-later terms.