Email Task Call Proposal
SkillCommunicationTurn explicit email, task, and calendar signals into an approval-gated phone follow-up proposal, using CALL-E only when a bounded appointment change genuinely requires a call.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Email Task Call Proposal skill
What this skill tells your AI
The instructions your AI receives, as published by calle-ai/awesome-phone-call-agents in skills/email-task-call-proposal/SKILL.md and read by ahel’s review.
This skill helps an assistant notice work in email, task, and calendar systems that needs an external follow-up. It chooses the least surprising channel available — an existing booking system, email, or phone — and creates a structured proposal for a human to review. It does not place a call while reading sources or drafting the proposal.
The intended host workflow is:
email/task/calendar evidence → channel proposal → human approval → follow-up → structured result
Use this skill when
- an email, task, or calendar event explicitly asks for a callback, confirmation, reschedule, availability check, or another bounded follow-up;
- a calendar event needs to be reorganized and the original booking channel is known or can be inferred from direct source evidence; and
- the recipient and an exact contact method are present in the source or a directly matched contact record.
Do not use this skill when
- the phone number or email address is missing, ambiguous, guessed, or found only in an unrelated contact record;
- the task can be completed safely by email, a draft, a calendar action, or a normal task update;
- the source does not establish why this recipient should be called;
- the user has not approved the proposal; or
- the call would require making a legal, medical, financial, purchasing, or other consequential decision on the user's behalf.
Channel selection
When a user asks to reorganize or reschedule an event, inspect how it was originally arranged before choosing a channel:
- Check durable channel memory for the exact person/business and situation first. A specific memory such as "reschedule appointment → phone" overrides a general preference, but never apply a memory to a merely similar business.
- Use the original booking system when the event contains a supported booking link or provider identifier.
- Use email when the source thread or directly matched contact has an email address and the business normally handles changes there.
- Use CALL-E when the business has no usable email or booking workflow, the source/contact has an explicit phone number, and the requested change can be stated as one bounded call goal. A phone-only salon or barber is a canonical example.
- If more than one channel is plausible, present the choice in the proposal instead of silently trying several channels. Never create duplicate email and phone follow-ups for the same event without separate approval.
When the source explicitly establishes a channel, the host may save that fact with its channel-memory tool. Include the source reference and the situation, and update a matching memory rather than creating a duplicate. Do not save an inferred preference.
Proposal workflow
- Read the bounded email/task/calendar context and identify the exact source event or work item.
- Match the recipient only to a directly relevant contact or an explicit address/number in the source. Never infer contact details from a name.
- Create one channel-specific proposal. For a call, use
call_taskand include the source reference, recipient, explicit phone number, reason, call goal, and expected result fields. - Show the user the proposed channel, source event, requested change, and a masked phone number when applicable. Keep the proposal pending until the user explicitly approves it.
- After approval, the host calls CALL-E through its authenticated server SDK or Developer API. Use an idempotency key derived from the proposal id.
- Poll or receive the CALL-E result until it reaches a terminal state. Record the CALL-E call id, terminal status, summary, and structured result.
- Treat
no_answer,voicemail,unclear, rejection, timeout, and ambiguous outcomes as unresolved. Do not claim that the requested task was completed. - Create any follow-up calendar, email, or task mutation as a separate approval-gated proposal.
Host contract
The host supplies the input evidence and implements proposal and execution boundaries. See references/proposal-contract.md for portable proposal and result shapes.
CALL-E's server SDK and Developer API are supported integration paths for a trusted backend. MCP may be used by a host that already has a secure, authenticated MCP client, but it is not required for this workflow.
Read references/safety.md and references/examples.md before using this skill.
Signals
- GitHub stars
- 104
- Forks
- 527
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
email-task-call-proposal- Source
- github.com/calle-ai/awesome-phone-call-agents