नो-कोड Salesforce कैलेंडर: 36 काम, कोड की एक भी लाइन नहीं
डेवलपर हो तो FullCalendar कस्टमाइज़ हो जाता है। MultiDatePick को वही एडमिन कस्टमाइज़ कर लेता है जिसे कैलेंडर चाहिए। यहाँ रोज़ के 36 कैलेंडर काम आमने-सामने हैं, ताकि आप एक नज़र में देख सकें कि कौन आगे है।
"सबसे ज़्यादा कस्टमाइज़ होने वाला कैलेंडर LWC कौन-सा है?" "क्या मैं बिना कोड के Salesforce कैलेंडर कस्टमाइज़ कर सकता हूँ?" "क्या FullCalendar का कोई नो-कोड विकल्प है?" ये सारी खोजें एक ही बात पूछती हैं, और जवाब एक सवाल पर टिका है: कस्टमाइज़ कौन करेगा?
FullCalendar एक JavaScript लाइब्रेरी है। हर विकल्प कोड में रहता है, इसलिए Salesforce में एक डेवलपर Lightning Web Component, रिकॉर्ड लोड और सेव करने वाला Apex और टेस्ट लिखता है, फिर डिप्लॉय करता है, और हर बदलाव पर यही सब दोहराता है। MultiDatePick एक तैयार Salesforce कैलेंडर है। हर विकल्प एक सेटिंग है, जिसे एडमिन Setup Wizard या Lightning App Builder में चुनता है, किसी भी स्टैंडर्ड या कस्टम ऑब्जेक्ट पर। न Apex, न JavaScript, न डिप्लॉय।
कस्टमाइज़ कौन करेगा?
कस्टमाइज़ होने के दो मतलब होते हैं। लाइब्रेरी उन लोगों के लिए कस्टमाइज़ होती है जो उस पर कोड लिखते हैं: कुछ भी मुमकिन है, और हर चीज़ एक प्रोजेक्ट है। कॉन्फ़िगर होने वाला कंपोनेंट उन लोगों के लिए कस्टमाइज़ होता है जो उसे इस्तेमाल करते हैं: हर विकल्प पहले से बना, टेस्ट किया और सुरक्षित है, और आप बस अपने काम के विकल्प चुनते हैं।
Salesforce में यही फ़र्क तय करता है कि आपका कैलेंडर किसके हाथ में है। FullCalendar के साथ वह एक डेवलपर है, 75% कवरेज वाला Apex टेस्ट सूट है और हर बदलाव पर एक डिप्लॉय। MultiDatePick के साथ वह एडमिन है जो जानता है कि कंपनी अपने कमरे, लोग और तारीखें कैसे बुक करती है, और बदलाव सेव करते ही लागू हो जाता है।
36 कैलेंडर काम, आमने-सामने
हर पंक्ति एक ऐसा काम है जो एडमिन से करवाया जाता है। हरी सेल विजेता है: सेटिंग से हो गया, कोई कोड नहीं। "कोड" का मतलब है कि डेवलपर इसे FullCalendar के Lightning Web Component और Apex में लिखता है।
कैलेंडर वहाँ, जहाँ लोग काम करते हैं
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| रिकॉर्ड पेज पर कैलेंडर जोड़ना | Lightning App Builder में कंपोनेंट को पेज पर खींचें और उसका Config Name टाइप करें | कोड: एक Lightning Web Component, static resource के रूप में FullCalendar, एक डिप्लॉय |
| सेटअप | Setup Wizard: पेज और आपके रिकॉर्ड के बारे में पूछता है, संभावित फ़ील्ड भरता है और लाइव प्रीव्यू दिखाता है | कोड: हर विकल्प JavaScript में एक property है |
| होम पेज या ऐप पेज पर लगाना | वही कंपोनेंट; Show All Records के साथ OwnerId=ME जैसा Record Filter | कोड: बिना रिकॉर्ड वाले पेजों के लिए दूसरा डेटा पाथ |
| स्क्रीन फ़्लो (Screen Flow) में इस्तेमाल करना | इसे Flow स्क्रीन पर खींचें; चुनी गई तारीखें और समय Flow variable के रूप में मिलते हैं | कोड: अपने आउटपुट वाला Flow स्क्रीन कंपोनेंट |
| Experience Cloud साइट पर पब्लिक के लिए खोलना | वही कंपोनेंट, guest यूज़र के लिए MultiDatePick - Guest permission set के साथ | कोड: लॉग इन न करने वाले यूज़र के लिए guest एक्सेस, sharing और Apex |
| सेटअप को दूसरे org में कॉपी करना | कॉन्फ़िगरेशन को JSON के रूप में एक्सपोर्ट करें, दूसरे org में इम्पोर्ट करें; Smart Field Mapping गायब फ़ील्ड मिला देता है | कोड: एक डिप्लॉयमेंट, और उसे पास कराने के लिए Apex टेस्ट |
अपने रिकॉर्ड दिखाना
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| कस्टम ऑब्जेक्ट के रिकॉर्ड दिखाना | ऑब्जेक्ट और उसका तारीख फ़ील्ड चुनें | कोड: फ़ील्ड को इवेंट से जोड़ने वाली Apex query |
| टास्क, इवेंट या अवसर (Opportunity) दिखाना | Date या Date/Time फ़ील्ड वाला कोई भी ऑब्जेक्ट, स्टैंडर्ड या कस्टम | कोड: हर ऑब्जेक्ट के लिए और Apex |
| संबंधित रिकॉर्ड दिखाना, जैसे अकाउंट के कॉन्टैक्ट पर दर्ज टास्क | Rollup Field, पाँच lookup दूर तक | कोड: रिलेशनशिप के पार query |
| सिर्फ़ कुछ रिकॉर्ड दिखाना | Record Filter, जैसे OwnerId=ME; Status__c=Confirmed | कोड: Apex या JavaScript में फ़िल्टर लॉजिक |
| स्थिति के हिसाब से रंग | Status Field और Status Colors, भराव, पट्टियों या दोनों के रूप में, फ़िल्टर पिल के साथ | कोड: JavaScript में हर वैल्यू को एक रंग से जोड़ना |
| दूसरी picklist जोड़ना, जैसे मीटिंग का प्रकार | Second Picklist Field, उन वैल्यू के साथ जिन्हें लोग चुन सकें | कोड: पिकर, सेव और डिस्प्ले |
| होवर पर विवरण दिखाना | Hover Popover Fields, lookup समेत, एक क्लिक में रिकॉर्ड | कोड: इवेंट render hook और एक tooltip |
| sharing और फ़ील्ड-लेवल सिक्योरिटी का पालन | हर query और सेव देखने वाले यूज़र के रूप में चलता है | कोड: उतना ही सुरक्षित जितना आपका लिखा Apex |
तारीखें चुनना और रिकॉर्ड सेव करना
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| लोगों को बिखरी हुई तारीखें चुनने देना | बिल्ट-इन: कोई भी दिन क्लिक करें, या रेंज पर खींचें | कोड: FullCalendar एक बार में एक ही लगातार रेंज चुनता है |
| रेंज को एक रिकॉर्ड के रूप में सेव करना | End Date Field: लगातार दिन शुरुआत और अंत वाला एक रिकॉर्ड बन जाते हैं | कोड: ग्रुपिंग और सेव |
| आवर्ती पैटर्न जोड़ना, जैसे हर सोमवार और बुधवार | Show Recurring Pattern Button: कार्यदिवस, सप्ताहांत, कस्टम दिन या दूसरा और चौथा शुक्रवार | कोड: पैटर्न फ़ॉर्म और तारीखों का हिसाब |
| टाइम स्लॉट चुनना | Time Interval (Minutes), Earliest Time और Latest Time | कोड: स्लॉट पिकर और उसका सेव |
| हर चुनाव पर एक रिकॉर्ड सेव करना | बिल्ट-इन, Default Record Name और Default Field Values के साथ | कोड: Apex insert, एरर हैंडलिंग और टेस्ट |
| कोई कितनी तारीखें चुने, इसकी सीमा तय करना | Max Dates Allowed, आपके अपने Limit Reached Message के साथ | कोड: JavaScript में गिनती और रोक |
| बुकिंग को Outlook या Google Calendar में भेजना | Show Add to Calendar After Saving | कोड: कैलेंडर फ़ाइल आपको खुद बनानी है |
बुकिंग नियम
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| क्षमता के साथ कमरे, उपकरण या लोग बुक करना | Booking कंपोनेंट: Resource Object, Capacity Field और लाइव क्षमता बैज | कोड: resource व्यू के लिए Premium लाइसेंस चाहिए, क्षमता आपको खुद बनानी है |
| डबल बुकिंग रोकना | Conflict Behavior: रोकें, छोड़ें या अनुमति दें | कोड: JavaScript में ओवरलैप नियम और सर्वर पर एक जाँच |
| अग्रिम सूचना ज़रूरी करना और यह तय करना कि कितने दिन आगे तक बुकिंग हो | Minimum Notice (Hours) और Book Up To (Days Ahead) | कोड: तारीख की सीमाएँ, जिन्हें आप खुद गिनते और लागू करते हैं |
| बुकिंग के बीच अंतराल छोड़ना | Buffer Between Bookings (Minutes) | कोड: बफ़र का हिसाब |
| हर resource के अपने व्यावसायिक घंटे इस्तेमाल करना | resource रिकॉर्ड पर Business Hours Start Field और End Field | कोड: हर resource के घंटे, जिन्हें आप लोड और लागू करते हैं |
| छुट्टियाँ, बंदी और अवकाश ब्लॉक करना | किसी भी ऑब्जेक्ट से Blocked Dates, पूरे दिन या दिन का हिस्सा, कारण के साथ | कोड: background events, जिन्हें आप query करके बनाते हैं |
व्यू और रूप
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| महीने के ग्रिड से ज़्यादा देना | Available Views: कैलेंडर, टाइमलाइन, सप्ताह, उपयोग हीटमैप और एजेंडा, हर पेज के लिए अलग चुनें | कोड: टाइमलाइन व्यू के लिए Premium लाइसेंस चाहिए; उपयोग हीटमैप है ही नहीं |
| टाइमलाइन को किसी फ़ील्ड से ग्रुप करना, जैसे टीम या क्षेत्र | टाइमलाइन समूहन फ़ील्ड (Timeline Group By Field) | कोड, Premium टाइमलाइन के ऊपर से |
| एक साथ कई रिकॉर्ड बदलना | Enable Edit Mode: कई रिकॉर्ड एक साथ खिसकाएँ, स्थिति बदलें या डिलीट करें | कोड: drag handler और Apex अपडेट |
| बटन और शीर्षकों के नाम बदलना | Button Label, Calendar Title और Save Button Label | कोड: JavaScript में टूलबार विकल्प |
| पेज में फ़िट करना | Calendar Size सबसे छोटे से पूरी चौड़ाई तक, Two-Month View, Week Starts on Monday | कोड: विकल्प और CSS |
लोग, भाषाएँ और रखरखाव
| काम | MultiDatePickबिना कोड | FullCalendar LWC |
|---|---|---|
| हर यूज़र की भाषा में दिखाना | नौ भाषाएँ बिल्ट-इन: अंग्रेज़ी, जर्मन, स्पेनिश, फ़्रेंच, इतालवी, पुर्तगाली, जापानी, चीनी और हिन्दी | कोड: FullCalendar अपने बटन का अनुवाद करता है; आपके लेबल और मैसेज का अनुवाद आपको करना है |
| हर यूज़र के टाइम ज़ोन में समय दिखाना | अपने आप, हर यूज़र की Salesforce सेटिंग्स से | कोड: टाइम ज़ोन विकल्प और कन्वर्ज़न |
| सुगम्यता के नियम पूरे करना | कीबोर्ड और स्क्रीन रीडर सपोर्ट, WCAG 2.1 AA के लिए प्रकाशित VPAT के साथ | कोड: टेस्टिंग भी आपकी, डॉक्यूमेंटेशन भी आपका |
| Salesforce रिलीज़ के साथ अप-टू-डेट रहना | अपडेट पैकेज में ही आते हैं | कोड: हर रिलीज़ पर आपको ही मेंटेन करना है |
नो-कोड कस्टमाइज़ेशन कैसा दिखता है
इन 36 कामों में से हर एक ऐसा चुनाव है जो एडमिन इनमें से किसी एक जगह करता है:
Setup Wizard
एक Lightning टैब जो आपके पेज और रिकॉर्ड के बारे में पूछता है, संभावित फ़ील्ड भरता है और सेव करने से पहले असली कैलेंडर दिखाता है।
Lightning App Builder
हर सेटिंग कंपोनेंट की एक property भी है, इसलिए आप बाकी पेजों को छुए बिना एक पेज बदल सकते हैं।
Config Library
41 तैयार सेटअप, मीटिंग रूम से लेकर छुट्टी तक, इम्पोर्ट करें और अपने हिसाब से बदलें।
एक्सपोर्ट और इम्पोर्ट
कॉन्फ़िगरेशन एक JSON है जिसे आप sandbox या दूसरे org में ले जा सकते हैं, और गायब फ़ील्ड आपके लिए मिला दिए जाते हैं।
Flow Builder
कैलेंडर को Flow स्क्रीन पर रखें और चुनी गई तारीखें अगले कदमों में इस्तेमाल करें।
Experience Builder
वही कैलेंडर पब्लिक साइट पर लगाएँ, guest यूज़र के लिए वही नियम।
लोग अक्सर पूछते हैं
क्या Salesforce के लिए कोई नो-कोड कैलेंडर LWC है?
हाँ। MultiDatePick एक Lightning Web Component कैलेंडर है जिसे आप क्लिक से सेट करते हैं: Setup Wizard या Lightning App Builder में, किसी भी स्टैंडर्ड या कस्टम ऑब्जेक्ट पर। यह आपके रिकॉर्ड खुद लोड और सेव करता है, इसलिए कोई Apex या JavaScript नहीं लिखना पड़ता।
क्या FullCalendar, MultiDatePick से ज़्यादा कस्टमाइज़ होता है?
सिर्फ़ डेवलपर के लिए। FullCalendar एक लाइब्रेरी है, इसलिए कुछ भी मुमकिन है, बशर्ते कोई कोड लिखे और उसे मेंटेन करे। एडमिन के लिए ज़्यादा कस्टमाइज़ होने वाला कैलेंडर MultiDatePick है: बुकिंग नियमों से लेकर नौ भाषाओं तक 36 आम काम, और हर एक बस एक सेटिंग।
क्या Salesforce एडमिन डेवलपर के बिना MultiDatePick सेट कर सकता है?
हाँ। Setup Wizard पेज और आपके रिकॉर्ड के बारे में पूछता है, संभावित फ़ील्ड खुद भर देता है और असली कैलेंडर का लाइव प्रीव्यू दिखाता है। फिर आप कंपोनेंट को पेज पर खींचकर रखते हैं और उसका Config Name टाइप करते हैं।
क्या कैलेंडर से रिकॉर्ड सेव करने के लिए Apex चाहिए?
MultiDatePick के साथ नहीं। सहेजें दबाने पर यह हर तारीख, रेंज, टाइम ब्लॉक या resource के लिए एक रिकॉर्ड लिखता है, या तारीखें स्क्रीन फ़्लो (Screen Flow) को सौंप देता है। हर सेव देखने वाले यूज़र के रूप में चलता है, sharing और फ़ील्ड-लेवल सिक्योरिटी लागू रहती है।
क्या मैं बाद में बिना डिप्लॉय के कैलेंडर बदल सकता हूँ?
हाँ। Setup Wizard में कॉन्फ़िगरेशन खोलें, कोई सेटिंग बदलें और सेव करें; अगली बार लोड होते ही कैलेंडर उसे अपना लेता है। कॉन्फ़िगरेशन Custom Metadata होते हैं, इसलिए चाहें तो आप उन्हें अब भी change set या Salesforce CLI से दूसरी जगह ले जा सकते हैं।
क्या नो-कोड कैलेंडर Screen Flow और Experience Cloud साइट पर काम करता है?
हाँ। वही कंपोनेंट Flow स्क्रीन पर लगता है, जहाँ चुनी गई तारीखें Flow variable बन जाती हैं, और पब्लिक Experience Cloud साइट पर भी, जहाँ guest यूज़र उन्हीं नियमों के तहत बुक करते हैं।
कस्टमाइज़ होने वाला कैलेंडर, बिना कोड के।
लाइव डेमो में घूमकर देखें, या Config Library के किसी तैयार कॉन्फ़िगरेशन से शुरू करें।
- $20/यूज़र/माह, हर फ़ीचर
- 30 दिन का फ़्री ट्रायल, कार्ड नहीं
- 100% नेटिव Salesforce
- कोई Apex नहीं
- जल्द ही Salesforce AppExchange पर