1"use strict";(self.webpackChunkelabftw_documentation=self.webpackChunkelabftw_documentation||[]).push([["344"],{1601(e,n,i){i.r(n),i.d(n,{metadata:()=>t,default:()=>h,frontMatter:()=>d,contentTitle:()=>c,toc:()=>l,assets:()=>o});var t=JSON.parse('{"id":"usage/user-guide/scheduler","title":"Scheduler","description":"It is possible to use the scheduler (calendar) to book Resources.","source":"@site/versioned_docs/version-6.0/usage/user-guide/scheduler.md","sourceDirName":"usage/user-guide","slug":"/usage/user-guide/scheduler","permalink":"/docs/usage/user-guide/scheduler","draft":false,"unlisted":false,"editUrl":"https://github.com/elabftw/elabftw/edit/release/6.0/documentation/docs/usage/user-guide/scheduler.md","tags":[],"version":"6.0","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"title":"Scheduler"},"sidebar":"usageSidebar","previous":{"title":"Custom fields","permalink":"/docs/usage/user-guide/custom-fields"},"next":{"title":"Templates","permalink":"/docs/usage/user-guide/templates"}}'),s=i(4848),r=i(8453);let d={sidebar_position:4,title:"Scheduler"},c="Scheduler",o={},l=[{value:"Events",id:"events",level:2},{value:"Bindings",id:"bindings",level:3},{value:"Edit an event",id:"edit-an-event",level:3},{value:"Cancel an event",id:"cancel-an-event",level:3},{value:"Browse events",id:"browse-events",level:3},{value:"Adjusting permissions",id:"adjusting-permissions",level:2},{value:"Archiving and deleting resources",id:"archiving-and-deleting-resources",level:2}];function a(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"scheduler",children:"Scheduler"})}),"\n",(0,s.jsx)(n.p,{children:"It is possible to use the scheduler (calendar) to book Resources."}),"\n",(0,s.jsxs)(n.p,{children:["Before proceeding, make sure you have a bookable resource. See ",(0,s.jsx)(n.a,{href:"./resources#making-a-resource-bookable",children:"Make a resource bookable"})," section."]}),"\n",(0,s.jsx)(n.p,{children:"Select an item by typing its name in the searchbar."}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-select-item.webp",width:"500",alt:"select an item"}),(0,s.jsx)("figcaption",{children:"Select an item to create an event."})]}),"\n",(0,s.jsxs)(n.p,{children:['You can now drag-and-drop a slot, confirm the "Title" of the event and click the ',(0,s.jsx)(n.code,{children:"Create event(s)"})," button. You can select multiple resources to create many events at the same time."]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-create-events.webp",width:"500",alt:"scheduler create events modal"}),(0,s.jsx)("figcaption",{children:"Modal to confirm creation of events."})]}),"\n",(0,s.jsx)(n.p,{children:"Once created, you will be able to see a list of your scheduled bookings in the main page (dashboard)."}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduled-bookings.webp",width:"500",alt:"scheduled bookings in dashboard"}),(0,s.jsx)("figcaption",{children:"Scheduled bookings in the dashboard."})]}),"\n",(0,s.jsx)(n.h2,{id:"events",children:"Events"}),"\n",(0,s.jsx)(n.p,{children:"On the scheduler page, the items listed are called Events. Clicking an existing slot displays a modal window with different information:"}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-event.webp",width:"300",alt:"scheduler events"}),(0,s.jsx)("figcaption",{children:"Events in the scheduler."})]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-event-view.webp",width:"700",alt:"modal view of an event"}),(0,s.jsx)("figcaption",{children:"Viewing an event."})]}),"\n",(0,s.jsx)(n.p,{children:"The first line indicates the Title (or Comment) of the event. It is defined by the user when creating or editing the event."}),"\n",(0,s.jsx)(n.p,{children:"Below are the date of the event, the time slot, and the duration in minutes."}),"\n",(0,s.jsx)(n.h3,{id:"bindings",children:"Bindings"}),"\n",(0,s.jsx)(n.p,{children:'You can bind the slot to an experiment or a resource. Start typing on the "Search" textbox and select the entry you wish to relate to this event.'}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-bind-experiment.webp",width:"700",alt:"Bind an experiment to an event."}),(0,s.jsx)("figcaption",{children:"Binding an experiment to the event."})]}),"\n",(0,s.jsx)(n.p,{children:"You can then view or unbind the entry."}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-binded.webp",width:"700",alt:"View or unbind"}),(0,s.jsx)("figcaption",{children:"View or unbind an experiment."})]}),"\n",(0,s.jsx)(n.h3,{id:"edit-an-event",children:"Edit an event"}),"\n",(0,s.jsxs)(n.p,{children:["Click the ",(0,s.jsx)(n.code,{children:"Edit"})," button to edit an event. You can modify its title and starting/ending hours."]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-edit-event.webp",width:"700",alt:"Edit an event"}),(0,s.jsx)("figcaption",{children:"Edit an event."})]}),"\n",(0,s.jsx)(n.p,{children:"In the scheduler page, you can update an event with the following actions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Drag-and-drop: Move the event to the desired start time."}),"\n",(0,s.jsx)(n.li,{children:"Drag (by the end): Move only the ending hour of the event."}),"\n"]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-event-actions.gif",alt:"Edit an event"}),(0,s.jsx)("figcaption",{children:"Different actions on an event."})]}),"\n",(0,s.jsx)(n.h3,{id:"cancel-an-event",children:"Cancel an event"}),"\n",(0,s.jsxs)(n.p,{children:["Click the ",(0,s.jsx)(n.code,{children:"Cancel"})," button to cancel an event."]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-delete-event.webp",width:"700",alt:"Delete an event"}),(0,s.jsx)("figcaption",{children:"Delete an event."})]}),"\n",(0,s.jsxs)(n.p,{children:["You can add a custom message to inform the team members who are connected to this event. You can either send to ",(0,s.jsx)(n.strong,{children:"Members of the team"})," or to a list of users who booked this resource in a specific time range."]}),"\n",(0,s.jsx)(n.h3,{id:"browse-events",children:"Browse events"}),"\n",(0,s.jsx)(n.p,{children:"You can use the filters to reduce clutter on the scheduler view and look for specific events."}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-filters-category.webp",alt:"filtering by category"}),(0,s.jsx)("figcaption",{children:"Filtering by category."})]}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/scheduler-filters-owner.webp",alt:"filtering by owner"}),(0,s.jsx)("figcaption",{children:"Filtering by owner."})]}
1),"\n",(0,s.jsx)(n.h2,{id:"adjusting-permissions",children:"Adjusting permissions"}),"\n",(0,s.jsx)(n.p,{children:'When a Resource is bookable, a new permission appears: "Can book":'}),"\n",(0,s.jsxs)("figure",{children:[(0,s.jsx)("img",{src:"/img/can-book-setting.webp",width:"400",alt:"can book settings"}),(0,s.jsx)("figcaption",{children:"Modify booking permissions."})]}),"\n",(0,s.jsxs)(n.p,{children:["By default, it will match the ",(0,s.jsx)(n.code,{children:"Visibility"})," permission of the entry, but it can be adjusted to fine-tune who exactly has access to this Resource for booking it."]}),"\n",(0,s.jsx)(n.h2,{id:"archiving-and-deleting-resources",children:"Archiving and deleting resources"}),"\n",(0,s.jsxs)(n.p,{children:["Resources can be archived or deleted just like experiments. The behavior is the exact same. See ",(0,s.jsx)(n.a,{href:"./experiments#archival",children:"Archival"})," section."]})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453(e,n,i){i.d(n,{R:()=>d,x:()=>c});var t=i(6540);let s={},r=t.createContext(s);function d(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.