The calendar is a core component of the application that allows users to view and manage their bookings and availability.We use the React Big Calendar library to render the calendar.
The artist is able to see and edit their availability for each day of the week. They can create recurring weekly schedules and exceptions to the schedule.
The artist is able to see all of their bookings in the calendar. They can also edit the bookings in the context of the calendar.
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Traza","description":"App for tattoo artists","colors":{"primary":"#5e10e5","light":"#d2b8ff","dark":"#d2b8ff"},"logo":{"light":"https://mintcdn.com/traza/dX3YkQbdEM8A4mTC/logo/light.svg?fit=max\u0026auto=format\u0026n=dX3YkQbdEM8A4mTC\u0026q=85\u0026s=526f810d0a9cdc29a0c30ee38e0242d5","dark":"https://mintcdn.com/traza/dX3YkQbdEM8A4mTC/logo/dark.svg?fit=max\u0026auto=format\u0026n=dX3YkQbdEM8A4mTC\u0026q=85\u0026s=8fbeae95029c571cc09629b5535b1a83"},"favicon":"https://mintcdn.com/traza/dX3YkQbdEM8A4mTC/favicon.svg?fit=max\u0026auto=format\u0026n=dX3YkQbdEM8A4mTC\u0026q=85\u0026s=f4bc87555bc779af92537d3f9fd236f9","api":{"playground":{"display":"none"}},"navbar":{"links":[{"href":"mailto:support@traza.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://traza.com.au/home"}},"footer":{"socials":{"instagram":"https://instagram.com/traza.official"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Traza Platform","icon":"browser","href":"https://traza.com.au/home"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"traza","hasAudioNarration":false,"actualSubdomain":"traza","customDomains":["docs.traza.com.au"],"gitSource":{"type":"github","owner":"traza-official","repo":"traza","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e6a3044dd579e9b57ce7","collectionId":"4e36789a-9fde-4de9-9b4b-dd15a5d3bffe","schemaVersion":"v2"},"feedback":{"edits":false},"entitlements":{},"buildId":"6a562e57eb1673919a36ae61:success","clientVersion":"0.0.3902","searchFilterCounts":[{"language":"default","tag":"API Reference","count":84},{"language":"default","tag":"Endpoints","count":84},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Bookings","count":16},{"language":"default","tag":"Flash","count":12},{"language":"default","tag":"Notifications","count":12},{"language":"default","tag":"Authentication","count":10},{"language":"default","tag":"Engineering","count":10},{"language":"default","tag":"Mintlify Blocks","count":9},{"language":"default","tag":"Gallery","count":8}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"engineering/calendar/overview","slug":"/engineering/calendar/overview","pageMetadata":{"title":"Calendar Overview","description":null,"href":"/engineering/calendar/overview"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The calendar is a core component of the application that allows users to view and manage their bookings and availability.`}),`\n`,_jsxs(_components.p,{children:[`We use the `,_jsx(_components.a,{href:`https://jquense.github.io/react-big-calendar/examples/index.html`,children:`React Big Calendar`}),` library to render the calendar.`]}),`\n`,_jsx(Heading,{level:`2`,id:`features`,children:`Features`}),`\n`,_jsx(Heading,{level:`3`,id:`artist-availability`,children:`Artist Availability`}),`\n`,_jsx(_components.p,{children:`The artist is able to see and edit their availability for each day of the week. They can create recurring weekly schedules and exceptions to the schedule.`}),`\n`,_jsx(Heading,{level:`3`,id:`bookings`,children:`Bookings`}),`\n`,_jsx(_components.p,{children:`The artist is able to see all of their bookings in the calendar. They can also edit the bookings in the context of the calendar.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Calendar Overview","description":null,"href":"/engineering/calendar/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Features","slug":"features","depth":2,"children":[{"title":"Artist Availability","slug":"artist-availability","depth":3,"children":[]},{"title":"Bookings","slug":"bookings","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"traza","siteName":"Traza","title":"Calendar Overview - Traza","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-20T01:46:48.262Z","originalFileLocation":"engineering/calendar/overview.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Traza\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Calendar Overview - Traza\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Traza\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.traza.com.au/engineering/calendar/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Calendar Overview - Traza\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/traza/Y61PEF60Cy-iq9JD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Traza\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5e10e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.traza.com.au/engineering/calendar/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/engineering/calendar/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.traza.com.au/#organization\",\"name\":\"Traza\",\"url\":\"https://docs.traza.com.au\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/traza/dX3YkQbdEM8A4mTC/logo/light.svg?fit=max\u0026auto=format\u0026n=dX3YkQbdEM8A4mTC\u0026q=85\u0026s=526f810d0a9cdc29a0c30ee38e0242d5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.traza.com.au#website\",\"name\":\"Traza\",\"url\":\"https://docs.traza.com.au\",\"publisher\":{\"@id\":\"https://docs.traza.com.au/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.traza.com.au/engineering/calendar/overview#webpage\",\"url\":\"https://docs.traza.com.au/engineering/calendar/overview\",\"name\":\"Calendar Overview\",\"dateModified\":\"2026-03-20T01:46:48.262Z\",\"isPartOf\":{\"@id\":\"https://docs.traza.com.au#website\"},\"breadcrumb\":{\"@id\":\"https://docs.traza.com.au/engineering/calendar/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.traza.com.au/engineering/calendar/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Engineering\",\"item\":\"https://docs.traza.com.au/engineering/architecture\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calendar Overview\",\"item\":\"https://docs.traza.com.au/engineering/calendar/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.traza.com.au/engineering/calendar/overview#article\",\"headline\":\"Calendar Overview\",\"name\":\"Calendar Overview\",\"url\":\"https://docs.traza.com.au/engineering/calendar/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.traza.com.au/engineering/calendar/overview#webpage\"},\"dateModified\":\"2026-03-20T01:46:48.262Z\",\"publisher\":{\"@id\":\"https://docs.traza.com.au/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.traza.com.au#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Traza\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Traza","nav":{"global":{"anchors":[{"anchor":"Traza Platform","icon":"browser","href":"https://traza.com.au/home"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Welcome","pages":[{"title":"Introduction","href":"/welcome/introduction"},{"title":"FAQ","href":"/welcome/faqs"}]},{"group":"Product","pages":[{"title":"Overview","href":"/product/overview"},{"group":"Bookings","pages":[{"title":null,"href":"/product/bookings/overview"}]},{"group":"Calendar","pages":[{"title":null,"href":"/product/calendar/overview"}]},{"group":"Payments","pages":[{"title":null,"href":"/product/payments/overview"}]},{"group":"Clients","pages":[{"title":null,"href":"/product/clients/overview"}]},{"group":"Settings","pages":[{"title":null,"href":"/product/settings/overview"}]}]},{"group":"Engineering","pages":[{"title":"Architecture \u0026 Infrastructure","href":"/engineering/architecture"},{"title":"Database Structure","href":"/engineering/database"},{"group":"Notifications","pages":[{"title":"Notifications","href":"/engineering/notifications/notifications-structure"},{"title":"Email Notifications","href":"/engineering/notifications/email-notifications"},{"title":"Booking Reminders","href":"/engineering/notifications/booking-reminders"},{"title":"Firebase Cloud Messaging (FCM) Push Notifications","href":"/engineering/notifications/fcm-push-notifications"},{"title":null,"description":null,"href":"/engineering/notifications/fcm-quick-start"}]},{"group":"Calendar","pages":[{"title":"Calendar Overview","href":"/engineering/calendar/overview"},{"title":"Artist Availability Calendar","description":null,"href":"/engineering/calendar/artist-availability"}]},{"group":"Settings","pages":[{"title":"User Preferences","href":"/engineering/settings/user-preferences"}]}]},{"group":"Mintlify Blocks","pages":[{"group":"Example Pages","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Development","href":"/development"}]},{"group":"Documentation Components","pages":[{"title":"Markdown Syntax","icon":"text-size","href":"/examples/markdown"},{"title":"Code Blocks","icon":"code","href":"/examples/code"},{"title":"Images and Embeds","icon":"image","href":"/examples/images"},{"title":"Global Settings","icon":"gear","href":"/examples/settings"},{"title":"Navigation","icon":"map","href":"/examples/navigation"},{"title":"Reusable Snippets","icon":"recycle","href":"/examples/reusable-snippets"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/engineering/apis/bookings/create-booking"}]}]},"title":"Calendar Overview - Traza","buildId":"dpl_C3fsfi1EcrBns9Vx91gUSN1X3Hi4","deploymentId":"dpl_C3fsfi1EcrBns9Vx91gUSN1X3Hi4","dynamics":[],"chunks":[]}