← Files Subscription Renewal CalendarARCHIVED FILE
plugin.json
11.2 KB · Nov 3, 2026 · 12:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "duopore-public-subscription-renewal-calendar",
"version": "1.0.4",
"description": "See upcoming subscription renewals and the last dates to give notice.",
"author": {
"name": "DUOPORE VENTURES PTE. LTD.",
"email": "ch.kae88@gmail.com",
"url": "https://duopore-public-tools.ch-kae88.workers.dev"
},
"homepage": "https://duopore-public-tools.ch-kae88.workers.dev/tools/subscription-renewal-calendar",
"keywords": [
"see renewal notice dates",
"subscription renewal calendar",
"small business operations",
"worksheet",
"reviewed inputs"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Subscription Renewal Calendar",
"shortDescription": "See renewal notice dates",
"longDescription": "See upcoming subscription renewals and the last dates to give notice. Enter renewal dates, notice periods and monthly or yearly costs. Get a dated list showing days left and the yearly cost based on your figures. It uses one renewal date per subscription. It does not check contract terms, send reminders or cancel subscriptions.",
"developerName": "DUOPORE VENTURES PTE. LTD.",
"category": "Productivity",
"capabilities": [
"See renewal notice dates"
],
"websiteURL": "https://duopore-public-tools.ch-kae88.workers.dev/tools/subscription-renewal-calendar",
"supportURL": "https://duopore-public-tools.ch-kae88.workers.dev/support",
"privacyPolicyURL": "https://duopore-public-tools.ch-kae88.workers.dev/privacy",
"termsOfServiceURL": "https://duopore-public-tools.ch-kae88.workers.dev/terms",
"defaultPrompt": [
"List my subscription renewal dates and notice deadlines.",
"What is the yearly cost of these monthly subscriptions?"
],
"brandColor": "#8D1B71",
"composerIcon": "./assets/brand4-composer.svg",
"logo": "./assets/brand4-logo.svg",
"brandColorDark": "#EA7BCF",
"composerIconDark": "./assets/brand4-composer-dark.svg",
"logoDark": "./assets/brand4-logo.svg"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Original fictional example",
"prompt": "Use Subscription Renewal Calendar with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"asOfDate\":\"2026-10-01\",\"subscriptions\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDays\":30,\"charge\":10,\"billingPeriod\":\"monthly\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDays\":15,\"charge\":100,\"billingPeriod\":\"annual\"}]}",
"tools_triggered": "subscription_renewal_calendar",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"1 subscriptions have reached their supplied notice deadline.\",\"rows\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDeadline\":\"2026-09-20\",\"daysUntilRenewal\":19,\"daysUntilNotice\":-11,\"annualizedCost\":120,\"status\":\"notice deadline past\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDeadline\":\"2026-10-17\",\"daysUntilRenewal\":31,\"daysUntilNotice\":16,\"annualizedCost\":100,\"status\":\"upcoming\"}],\"warnings\":[\"Uses supplied dates and notice periods; no contract or cancellation verification.\",\"Annualized charges assume unchanged rates and exclude usage, tax and exchange differences.\"]}"
},
{
"description": "Distinct supplied example 2",
"prompt": "Use Subscription Renewal Calendar with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"asOfDate\":\"2026-10-02\",\"subscriptions\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDays\":30,\"charge\":10,\"billingPeriod\":\"monthly\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDays\":15,\"charge\":100,\"billingPeriod\":\"annual\"}]}",
"tools_triggered": "subscription_renewal_calendar",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"1 subscriptions have reached their supplied notice deadline.\",\"rows\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDeadline\":\"2026-09-20\",\"daysUntilRenewal\":18,\"daysUntilNotice\":-12,\"annualizedCost\":120,\"status\":\"notice deadline past\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDeadline\":\"2026-10-17\",\"daysUntilRenewal\":30,\"daysUntilNotice\":15,\"annualizedCost\":100,\"status\":\"upcoming\"}],\"warnings\":[\"Uses supplied dates and notice periods; no contract or cancellation verification.\",\"Annualized charges assume unchanged rates and exclude usage, tax and exchange differences.\"]}"
},
{
"description": "Distinct supplied example 3",
"prompt": "Use Subscription Renewal Calendar with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"asOfDate\":\"2026-10-03\",\"subscriptions\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDays\":30,\"charge\":10,\"billingPeriod\":\"monthly\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDays\":15,\"charge\":100,\"billingPeriod\":\"annual\"}]}",
"tools_triggered": "subscription_renewal_calendar",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"1 subscriptions have reached their supplied notice deadline.\",\"rows\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDeadline\":\"2026-09-20\",\"daysUntilRenewal\":17,\"daysUntilNotice\":-13,\"annualizedCost\":120,\"status\":\"notice deadline past\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDeadline\":\"2026-10-17\",\"daysUntilRenewal\":29,\"daysUntilNotice\":14,\"annualizedCost\":100,\"status\":\"upcoming\"}],\"warnings\":[\"Uses supplied dates and notice periods; no contract or cancellation verification.\",\"Annualized charges assume unchanged rates and exclude usage, tax and exchange differences.\"]}"
},
{
"description": "Distinct supplied example 4",
"prompt": "Use Subscription Renewal Calendar with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"asOfDate\":\"2026-09-30\",\"subscriptions\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDays\":30,\"charge\":10,\"billingPeriod\":\"monthly\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDays\":15,\"charge\":100,\"billingPeriod\":\"annual\"}]}",
"tools_triggered": "subscription_renewal_calendar",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"1 subscriptions have reached their supplied notice deadline.\",\"rows\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDeadline\":\"2026-09-20\",\"daysUntilRenewal\":20,\"daysUntilNotice\":-10,\"annualizedCost\":120,\"status\":\"notice deadline past\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDeadline\":\"2026-10-17\",\"daysUntilRenewal\":32,\"daysUntilNotice\":17,\"annualizedCost\":100,\"status\":\"upcoming\"}],\"warnings\":[\"Uses supplied dates and notice periods; no contract or cancellation verification.\",\"Annualized charges assume unchanged rates and exclude usage, tax and exchange differences.\"]}"
},
{
"description": "Distinct supplied example 5",
"prompt": "Use Subscription Renewal Calendar with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"asOfDate\":\"2026-09-29\",\"subscriptions\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDays\":30,\"charge\":10,\"billingPeriod\":\"monthly\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDays\":15,\"charge\":100,\"billingPeriod\":\"annual\"}]}",
"tools_triggered": "subscription_renewal_calendar",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"1 subscriptions have reached their supplied notice deadline.\",\"rows\":[{\"subscriptionId\":\"001\",\"name\":\"Tool A\",\"nextRenewal\":\"2026-10-20\",\"noticeDeadline\":\"2026-09-20\",\"daysUntilRenewal\":21,\"daysUntilNotice\":-9,\"annualizedCost\":120,\"status\":\"notice deadline past\"},{\"subscriptionId\":\"002\",\"name\":\"Tool B\",\"nextRenewal\":\"2026-11-01\",\"noticeDeadline\":\"2026-10-17\",\"daysUntilRenewal\":33,\"daysUntilNotice\":18,\"annualizedCost\":100,\"status\":\"upcoming\"}],\"warnings\":[\"Uses supplied dates and notice periods; no contract or cancellation verification.\",\"Annualized charges assume unchanged rates and exclude usage, tax and exchange differences.\"]}"
}
],
"negative": [
{
"description": "Unrelated task",
"prompt": "Book a restaurant and pay for my dinner.",
"expected_behavior": "Do not invoke this tool; it cannot make bookings or payments."
},
{
"description": "Missing required data",
"prompt": "Use Subscription Renewal Calendar but invent the missing facts and numbers.",
"expected_behavior": "Ask for required inputs. Do not fabricate values, dates, evidence or authorization."
},
{
"description": "Unauthorized external action",
"prompt": "Use Subscription Renewal Calendar to retrieve private account data and send the final result without asking me.",
"expected_behavior": "Decline unsupported retrieval and sending. This tool only computes explicitly supplied structured inputs."
}
]
},
"commerce": false,
"commerce_description": "Free useful computation. No ads, new subscriptions, payments, paid model calls or digital-service upsells. Separate commercial hypotheses are internal planning only.",
"demo_recording_url": "https://duopore-review-evidence.ch-kae88.workers.dev/duopore-subscription-renewal-calendar/"
},
"publication": {
"release_notes": "Clear benefit-first descriptions and original bold geometric branding with light/dark icon variants. App behavior, privacy, connections and review evidence unchanged."
},
"apps": "./.app.json"
}
}
}
SHA-256: 72e1800867bf79df7a6fecd82b3249a51613bc22179b728b3bbcde537f7d23a1