Download the PHP package callmelater/laravel without Composer
On this page you can find all versions of the php package callmelater/laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download callmelater/laravel
More information about callmelater/laravel
Files in callmelater/laravel
Package laravel
Short Description Laravel SDK for CallMeLater - Schedule HTTP calls and interactive reminders
License MIT
Homepage https://callmelater.io
Informations about the package laravel
CallMeLater Laravel SDK
A fluent Laravel SDK for CallMeLater - schedule durable HTTP calls and interactive reminders.
Requirements
- PHP 8.2+
- Laravel 10, 11, 12, or 13
Installation
Configuration
Add your API credentials to .env:
Optionally publish the config file:
Usage
Scheduling HTTP Calls
Sending Reminders
Recurring Actions
Make any action repeat on a schedule:
Recurring actions work with both HTTP actions and reminders. The minimum interval is 5 minutes.
Chains (Multi-Step Workflows)
Templates (Reusable Action Definitions)
Managing Actions
Handling Webhooks
The SDK provides a built-in webhook handler that verifies signatures and dispatches Laravel events automatically:
This verifies the X-CallMeLater-Signature header and dispatches the appropriate Laravel event (ActionExecuted, ActionFailed, ActionExpired, or ReminderResponded).
You can also skip signature verification (useful in local development) or disable event dispatching:
Alternatively, use the middleware for route-level signature verification:
Listening to Events
Artisan Commands
Dependency Injection
You can also use dependency injection instead of the facade:
Debugging
Both builders provide methods to inspect the API payload before sending:
Error Handling
The SDK throws specific exceptions for different error types:
Catching API Errors
API Reference
HTTP Action Builder
| Method | Description |
|---|---|
method(string $method) |
Set HTTP method (GET, POST, PUT, PATCH, DELETE) |
get(), post(), put(), patch(), delete() |
Shortcut methods |
headers(array $headers) |
Set request headers |
header(string $key, string $value) |
Add a single header |
payload(mixed $data) |
Set request body |
name(string $name) |
Set a friendly name |
at(DateTime\|string $time) |
Schedule at specific time or preset |
delay(int $amount, string $unit) |
Schedule after delay |
inMinutes(int), inHours(int), inDays(int) |
Delay shortcuts |
timezone(string $tz) |
Set timezone |
retry(int $max, string $backoff, int $delay) |
Configure retry policy |
noRetry() |
Disable retries |
callback(string $url) |
Set callback URL |
metadata(array $data) |
Set metadata |
meta(string $key, mixed $value) |
Add a single metadata entry |
idempotencyKey(string $key) |
Set idempotency key |
repeat(int $freq, string $unit) |
Enable recurrence (e.g., repeat(2, 'hours')) |
every(int $freq, string $unit) |
Alias for repeat() |
everyMinutes(int), everyHours(int), everyDays(int), everyWeeks(int), everyMonths(int) |
Recurrence shortcuts |
maxOccurrences(int $count) |
Stop after N executions |
until(DateTime\|string $date) |
Stop after a date |
repeatForever() |
No end condition (default) |
toArray() |
Get the API payload without sending |
dd() |
Dump the payload and die |
send() |
Send the action |
Reminder Builder
| Method | Description |
|---|---|
to(string $email) |
Add email recipient |
toMany(array $emails) |
Add multiple recipients |
toPhone(string $phone) |
Add SMS recipient |
toChannel(string $uuid) |
Add chat channel recipient |
message(string $text) |
Set reminder message |
buttons(string $confirm, string $decline) |
Customize button text |
allowSnooze(int $max) |
Allow snoozing |
noSnooze() |
Disable snoozing |
expiresInDays(int $days) |
Set token expiry |
requireAll() |
Require all recipients to respond |
firstResponse() |
Complete on first response |
escalateTo(array $contacts, int $hours) |
Add escalation |
attach(string $url, ?string $name) |
Add attachment |
callback(string $url) |
Set callback URL |
metadata(array $data) |
Add metadata |
toRecipient(string $selector) |
Add a raw recipient selector URI |
repeat(int $freq, string $unit) |
Enable recurrence (e.g., repeat(1, 'weeks')) |
every(int $freq, string $unit) |
Alias for repeat() |
everyMinutes(int), everyHours(int), everyDays(int), everyWeeks(int), everyMonths(int) |
Recurrence shortcuts |
maxOccurrences(int $count) |
Stop after N executions |
until(DateTime\|string $date) |
Stop after a date |
repeatForever() |
No end condition (default) |
toArray() |
Get the API payload without sending |
dd() |
Dump the payload and die |
send() |
Send the reminder |
Chain Builder
| Method | Description |
|---|---|
input(array $data) |
Set chain input data (available as {{input.*}} in steps) |
addHttpStep(string $name) |
Add an HTTP step, returns HttpStepBuilder |
addGateStep(string $name) |
Add a gate (approval) step, returns GateStepBuilder |
addDelayStep(string $name) |
Add a delay step, returns DelayStepBuilder |
errorHandling(string $strategy) |
Set error handling (fail_chain, skip_step, continue) |
toArray() |
Get the API payload without sending |
dd() |
Dump the payload and die |
send() |
Send the chain |
HTTP Step Builder (within chains)
| Method | Description |
|---|---|
url(string $url) |
Set request URL |
method(string $method) |
Set HTTP method |
get(), post(), put(), patch(), delete() |
Method shortcuts |
headers(array $headers) |
Set request headers |
body(mixed $data) |
Set request body |
maxAttempts(int $max) |
Set retry attempts |
retryStrategy(string $strategy) |
Set retry strategy |
condition(string $expr) |
Set condition expression |
done() / add() |
Return to chain builder |
Gate Step Builder (within chains)
| Method | Description |
|---|---|
message(string $text) |
Set gate message |
to(string $email) |
Add email recipient |
toMany(array $emails) |
Add multiple recipients |
toRecipient(string $uri) |
Add raw recipient URI |
maxSnoozes(int $max) |
Set max snoozes |
requireAll() / firstResponse() |
Set confirmation mode |
timeout(string $duration) |
Set timeout (e.g., '2d', '24h') |
onTimeout(string $action) |
Set timeout action (cancel, continue, fail) |
condition(string $expr) |
Set condition expression |
done() / add() |
Return to chain builder |
Delay Step Builder (within chains)
| Method | Description |
|---|---|
duration(string $dur) |
Set raw duration (e.g., '4h30m') |
minutes(int), hours(int), days(int) |
Duration shortcuts |
condition(string $expr) |
Set condition expression |
done() / add() |
Return to chain builder |
Template Builder
| Method | Description |
|---|---|
description(string $text) |
Set template description |
type(string $type) |
Set action type (http, reminder, chain) |
mode(string $mode) |
Set mode (immediate, gated) |
timezone(string $tz) |
Set default timezone |
requestConfig(array $config) |
Set HTTP request config |
gateConfig(array $config) |
Set gate config |
maxAttempts(int $max) |
Set retry attempts |
retryStrategy(string $strategy) |
Set retry strategy |
placeholder(string $key, ...) |
Add a placeholder (with required, description, default) |
placeholders(array $list) |
Set all placeholders at once |
chainSteps(array $steps) |
Set chain steps (for chain templates) |
chainErrorHandling(string $strategy) |
Set chain error handling |
coordinationKeys(array $keys) |
Set coordination keys |
coordinationConfig(array $config) |
Set coordination config |
toArray() |
Get the API payload without sending |
dd() |
Dump the payload and die |
send() / create() |
Create the template |
update(string $id) |
Update an existing template |
Chain & Template Management
| Method | Description |
|---|---|
CallMeLater::chain($name) |
Create a chain builder |
CallMeLater::getChain($id) |
Get a chain by ID |
CallMeLater::listChains($filters) |
List chains |
CallMeLater::cancelChain($id) |
Cancel a running chain |
CallMeLater::template($name) |
Create a template builder |
CallMeLater::getTemplate($id) |
Get a template by ID |
CallMeLater::listTemplates($filters) |
List templates |
CallMeLater::deleteTemplate($id) |
Delete a template |
CallMeLater::toggleTemplate($id) |
Toggle enabled/disabled |
CallMeLater::regenerateTemplateToken($id) |
Regenerate trigger token |
CallMeLater::templateLimits() |
Get account template limits |
CallMeLater::trigger($token, $params) |
Trigger a template |
Signature Verification
| Method | Description |
|---|---|
CallMeLater::verifySignature($request) |
Verify signature or throw SignatureVerificationException |
CallMeLater::isValidSignature($request) |
Returns true/false without throwing |
Testing
Run the SDK test suite:
License
MIT
All versions of laravel with dependencies
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ^7.0