Here is my schema btw:
{
"previewUrls": {},
"properties": {
"validateOnPublish": false
},
"scripts": {
"query": "",
"create": "ctx.data.debugCreate.iv = JSON.stringify(ctx, null, 2);\n\nlet year = ctx.data.purchaseYear.iv ? ctx.data.purchaseYear.iv : new Date().getFullYear();\nlet month = ctx.data.purchaseMonth.iv ? ctx.data.purchaseMonth.iv - 1 : 0; // default January (0-based)\nlet day = ctx.data.purchaseDay.iv ? ctx.data.purchaseDay.iv : 1; // default first day of month\n\nlet purchaseDate = new Date(Date.UTC(year, month, day, 0, 0, 0));\nctx.data.purchaseDate = { iv: purchaseDate.toISOString() };\n\nlet monthsToAdd = 3;\nlet nextDue = new Date(purchaseDate.getTime());\nnextDue.setUTCMonth(nextDue.getUTCMonth() + monthsToAdd);\n\nctx.data.nextReminderDue = { iv: nextDue.toISOString() };\nreplace();",
"update": "// works\n//ctx.data.purchaseDay.iv = 1;\n//replace();\n\n// works\n//ctx.data.purchaseDate = { iv: \"2020-12-31T00:00:00.000Z\" };\n//replace();\n\n// works\n//let purchaseDate = new Date(Date.UTC(2019, 2, 6, 0, 0, 0));\n//ctx.data.purchaseDate = { iv: purchaseDate.toISOString() };\n//replace();\n\n// works\n//let year = ctx.data.purchaseYear.iv ? ctx.data.purchaseYear.iv : new Date().getFullYear();\n//let month = ctx.data.purchaseMonth.iv ? ctx.data.purchaseMonth.iv - 1 : 0; // default January (0-based)\n//let day = ctx.data.purchaseDay.iv ? ctx.data.purchaseDay.iv : 1; // default first day of month\n\n//let purchaseDate = new Date(Date.UTC(year, month, day, 0, 0, 0));\n//ctx.data.purchaseDate = { iv: purchaseDate.toISOString() };\n\n//replace();\n\n// works\n//let year = ctx.data.purchaseYear.iv ? ctx.data.purchaseYear.iv : new Date().getFullYear();\n//let month = ctx.data.purchaseMonth.iv ? ctx.data.purchaseMonth.iv - 1 : 0; // default January (0-based)\n//let day = ctx.data.purchaseDay.iv ? ctx.data.purchaseDay.iv : 1; // default first day of month\n\n//let purchaseDate = new Date(Date.UTC(year, month, day, 0, 0, 0));\n//ctx.data.purchaseDate = { iv: purchaseDate.toISOString() };\n\n//let monthsToAdd = 3;\n//let nextDue = new Date(purchaseDate.getTime());\n//nextDue.setUTCMonth(nextDue.getUTCMonth() + monthsToAdd);\n\n//ctx.data.nextReminderDue = { iv: nextDue.toISOString() };\n//replace();\n\n//ctx.data.debugUpdate.iv = JSON.stringify(ctx, null, 2);\n\nlet year = ctx.data.purchaseYear.iv ? ctx.data.purchaseYear.iv : new Date().getFullYear();\nlet month = ctx.data.purchaseMonth.iv ? ctx.data.purchaseMonth.iv - 1 : 0; // default January (0-based)\nlet day = ctx.data.purchaseDay.iv ? ctx.data.purchaseDay.iv : 1; // default first day of month\n\nlet purchaseDate = new Date(Date.UTC(year, month, day, 0, 0, 0));\nctx.data.purchaseDate = { iv: purchaseDate.toISOString() };\n\nlet monthsToAdd = 3;\nlet nextDue = new Date(purchaseDate.getTime());\nnextDue.setUTCMonth(nextDue.getUTCMonth() + monthsToAdd);\n\nctx.data.nextReminderDue = { iv: nextDue.toISOString() };\nreplace();",
"change": ""
},
"isPublished": true,
"fieldRules": [],
"fieldsInLists": [],
"fieldsInReferences": [],
"fields": [
{
"name": "debugCreate",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "String",
"createEnum": false,
"editor": "Html",
"inlineEditable": false,
"isEmbeddable": false,
"isUnique": false,
"contentType": "Unspecified"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "debugUpdate",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "String",
"createEnum": false,
"editor": "Html",
"inlineEditable": false,
"isEmbeddable": false,
"isUnique": false,
"contentType": "Unspecified"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "cup",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "References",
"editor": "List",
"allowDuplicates": false,
"resolveReference": false,
"mustBePublished": false,
"schemaIds": [
"50583c01-40d9-4afa-bec7-c8afc1bec673"
]
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "name",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "String",
"createEnum": false,
"editor": "Input",
"inlineEditable": false,
"isEmbeddable": false,
"isUnique": false,
"contentType": "Unspecified"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "cupNotOnList",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Boolean",
"editor": "Toggle",
"inlineEditable": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "isMain",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Boolean",
"editor": "Toggle",
"inlineEditable": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "isArchived",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Boolean",
"editor": "Toggle",
"inlineEditable": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "hasReminders",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Boolean",
"editor": "Toggle",
"inlineEditable": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "reminderSchedule",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "String",
"createEnum": false,
"editor": "Radio",
"inlineEditable": false,
"isEmbeddable": false,
"isUnique": false,
"allowedValues": [
"1 Month",
"3 Months",
"1 Year"
],
"contentType": "Unspecified"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "nextReminderDue",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "DateTime",
"editor": "DateTime"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "purchaseDate",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "DateTime",
"editor": "DateTime"
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "purchaseYear",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Number",
"editor": "Input",
"inlineEditable": false,
"isUnique": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "purchaseMonth",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Number",
"editor": "Input",
"inlineEditable": false,
"isUnique": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
},
{
"name": "purchaseDay",
"properties": {
"isRequired": false,
"isRequiredOnPublish": false,
"isHalfWidth": false,
"fieldType": "Number",
"editor": "Input",
"inlineEditable": false,
"isUnique": false
},
"isLocked": false,
"isHidden": false,
"isDisabled": false,
"partitioning": "invariant"
}
],
"type": "Default"
}