A Calendar Subscription Plan ends every subscriber’s term on the same month and day, no matter when each subscriber started. Use this plan type when everyone must line up with a shared fiscal year, program year, or event window — for example, a membership that always renews on January 1.A Calendar plan is a record of the Subscription_Plan__c object that uses the FC_Calendarrecord type (label “Calendar”). A record type is a Salesforce setting that makes one object behave in more than one way; choosing the Calendar record type is what makes the plan calculate its term against a fixed calendar date. There is no separate “type” picklist to set.
At purchase time, fusionCore sets the term’s end date to the plan’s End Month and End Day in the start year. If the subscriber starts after that date has already passed for the year, the end date rolls forward to the same month and day in the next year.For example, with an End Month (End_Month__c) of December and an End Day (End_Day__c) of 31:
A subscriber who starts on March 1, 2025 ends on December 31, 2025.
A subscriber who starts on December 31, 2025 (or later) ends on December 31, 2026.
End Month (End_Month__c) and End Day (End_Day__c) are both required for a Calendar plan to work. Without both, the term cannot be calculated and the purchase fails. See Limitations and Common Pitfalls below.
Click the App Launcher (the nine dots at the top left of Salesforce) and type Subscription Plan, then open the Subscription Plans list.
Searching for Subscription Plan in the App Launcher
2
Create a new plan with the Calendar record type
At the top right of the list view, click New.
The New button on the Subscription Plans list view
Select the Calendar record type, then click Next. This is the step that makes the plan a Calendar plan.
Selecting the Calendar record type
3
Fill in the plan fields
Complete the plan’s fields:
Name (required)
End Month (End_Month__c) — required; the month the term ends
End Day (End_Day__c) — required; the day of the month the term ends
Start Month (Start_Month__c) — recommended; the month the period starts
Start Day (Start_Day__c) — recommended; the day of the month the period starts
Renewal Days (Renewal_Days__c) — optional; how many days before the end date the nightly renewal job generates the renewal order
Grace Period (Grace_Period__c) — optional; extra days after the end date before the subscription lapses
Auto Charge (Auto_Charge__c) — optional; whether renewals charge a stored payment method automatically (Disabled, Enabled, or Required)
Prorate Type (Prorate_Type__c) — optional; how a mid-period join is priced down (Calendar-only)
Advanced Join Days (Advanced_Join_Days__c) — optional; the early-join window (Calendar-only)
Advanced Join Pricing (Advanced_Join_Pricing__c) — optional; how the bonus period is charged (Calendar-only)
Active (Active__c) — leave checked so the plan can be used; it is checked by default
The Calendar Subscription Plan information fields
4
Save the plan
Click Save.
After saving, link the plan to a subscription product through a Product_Subscription_Plan__c record, and mark exactly one plan as the default for that product. The product must have Is Subscription checked (and Is Membership for memberships). See Subscription Products.
Two optional behaviors are unique to Calendar plans because they only make sense against a fixed end date.
Prorate Type (Prorate_Type__c) controls how a mid-period join is priced down. A subscriber who joins partway through the calendar term pays a fraction of the full price, at the granularity you choose: Daily, Weekly, Monthly, Quarterly, or Semi-Annual.
Advanced Joins let a subscriber who joins shortly before the term end roll straight into the next full term.
Advanced Join Days (Advanced_Join_Days__c) defines a window of N days before the term end. If a subscriber joins inside that window, their end date is pushed to the following year’s end date, so they get the rest of the current term plus all of next year.
Advanced Join Pricing (Advanced_Join_Pricing__c) sets how that bonus period is charged: Free, or a prorated amount at Daily, Weekly, Monthly, Quarterly, or Semi-Annual granularity.
End Month and End Day are both required, but enforced at purchase, not at save. A plan can save without them, yet a subscription purchase that uses the plan fails with a validation error (Calendar_Subscription_Plan_Validation_Failed_V2) when End Month (End_Month__c) or End Day (End_Day__c) is missing. Always set both.
Advanced Join and Prorate settings are Calendar-only.Advanced Join Days (Advanced_Join_Days__c), Advanced Join Pricing (Advanced_Join_Pricing__c), and Prorate Type (Prorate_Type__c) are never read for an Anniversary plan; on that record type they are silently ignored, not blocked.
Advanced Join proration does not account for leap years. Daily proration divides by 365 and weekly by 52, so amounts in a leap year are not adjusted.
The plan must be active to be used. If Active (Active__c) is unchecked, the plan is not available for new subscriptions.
Renewal Days drives the automatic renewal job. If Renewal Days (Renewal_Days__c) is blank, the nightly renewal job never picks up subscriptions on this plan, so renewal orders are not generated automatically. Manual renewals still work.
An unrecognized record type stops processing. Subscription term logic only handles the FC_Anniversary and FC_Calendar record types. A plan on any other record type raises an unhandled-record-type error (Error_Unhandled_Record_Type_Id_V2).
⌘I
Assistant
Responses are generated using AI and may contain mistakes.