{"id":26315764,"url":"https://github.com/jamalianpour/time_planner","last_synced_at":"2025-04-06T20:09:24.485Z","repository":{"id":37015765,"uuid":"350408399","full_name":"Jamalianpour/time_planner","owner":"Jamalianpour","description":"a time planner for flutter to show task on table","archived":false,"fork":false,"pushed_at":"2023-09-28T15:00:14.000Z","size":3383,"stargazers_count":230,"open_issues_count":5,"forks_count":63,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-30T19:05:17.634Z","etag":null,"topics":["dart","flutter","table","time-planner"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/time_planner","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jamalianpour.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-03-22T16:12:24.000Z","updated_at":"2025-03-03T12:56:01.000Z","dependencies_parsed_at":"2023-09-28T16:52:45.245Z","dependency_job_id":null,"html_url":"https://github.com/Jamalianpour/time_planner","commit_stats":{"total_commits":27,"total_committers":7,"mean_commits":3.857142857142857,"dds":0.5185185185185186,"last_synced_commit":"b04244c8cbbefec2f97ba96b3d6b123d31801cfe"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamalianpour%2Ftime_planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamalianpour%2Ftime_planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamalianpour%2Ftime_planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamalianpour%2Ftime_planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jamalianpour","download_url":"https://codeload.github.com/Jamalianpour/time_planner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543589,"owners_count":20955865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","table","time-planner"],"created_at":"2025-03-15T12:20:12.166Z","updated_at":"2025-04-06T20:09:24.454Z","avatar_url":"https://github.com/Jamalianpour.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Time planner\n\n\u003ca href=\"https://pub.dev/packages/time_planner\"\u003e\n   \u003cimg alt=\"Pub Version\" src=\"https://img.shields.io/pub/v/time_planner.svg?longCache=true\" /\u003e   \n\u003c/a\u003e\n\u003ca href=\"https://github.com/Solido/awesome-flutter\"\u003e\n   \u003cimg alt=\"Awesome Flutter\" src=\"https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true\" /\u003e   \n\u003c/a\u003e\n\nA beautiful, easy to use and customizable time planner for flutter mobile 📱, desktop 🖥 and web 🌐\n\nThis is a widget for show tasks to user on a time table.  \nEach row show an hour and each column show a day but you can change the title of column and show any things else you want.\n\n## Screenshots\n\n| Mobile                           | Dark                               |\n| -------------------------------- | ---------------------------------- |\n| ![Mobile](screenshot/Mobile.gif) | ![Dark](screenshot/darkMobile.jpg) |\n\n| Desktop                            | Web                        |\n| ---------------------------------- | -------------------------- |\n| ![Desktop](screenshot/Desktop.gif) | ![Web](screenshot/Web.gif) |\n\n## Demo\n\nYou can see web demo here: [https://jamalianpour.github.io/time_planner_demo](https://jamalianpour.github.io/time_planner_demo)\n\n## Usage\n\n##### 1. add dependencies into you project pubspec.yaml file\n\n```yaml\ndependencies:\n  time_planner: ^0.1.2+1\n```\n\n##### 2. import time planner lib\n\n```dart\nimport 'package:time_planner/time_planner.dart';\n```\n\n##### 3. use time planner\n\n```dart\nList\u003cTimePlannerTask\u003e tasks = [\n  TimePlannerTask(\n    // background color for task\n    color: Colors.purple,\n    // day: Index of header, hour: Task will be begin at this hour\n    // minutes: Task will be begin at this minutes\n    dateTime: TimePlannerDateTime(day: 0, hour: 14, minutes: 30),\n    // Minutes duration of task\n    minutesDuration: 90,\n    // Days duration of task (use for multi days task)\n    daysDuration: 1,\n    onTap: () {},\n    child: Text(\n      'this is a task',\n      style: TextStyle(color: Colors.grey[350], fontSize: 12),\n    ),\n  ),\n];\n```\n\n```dart\nTimePlanner(\n  // time will be start at this hour on table\n  startHour: 6,\n  // time will be end at this hour on table\n  endHour: 23,\n  // each header is a column and a day\n  headers: [\n    TimePlannerTitle(\n      date: \"3/10/2021\",\n      title: \"sunday\",\n    ),\n    TimePlannerTitle(\n      date: \"3/11/2021\",\n      title: \"monday\",\n    ),\n    TimePlannerTitle(\n      date: \"3/12/2021\",\n      title: \"tuesday\",\n    ),\n  ],\n  // List of task will be show on the time planner\n  tasks: tasks,\n),\n```\n\n#### Multi days task\n\nYou can add multi days task with `daysDuration` minimum and default value for this argument is 1 and result look like this :\n\n![MultiDay](screenshot/MultiDay.png)\n\n### Style\n\nyou can change style of time planner with `TimePlannerStyle` :\n\n```dart\nstyle: TimePlannerStyle(\n  backgroundColor: Colors.blueGrey[900],\n  // default value for height is 80\n  cellHeight: 60,\n  // default value for width is 90\n  cellWidth: 60,\n  dividerColor: Colors.white,\n  showScrollBar: true,\n  horizontalTaskPadding: 5,\n  borderRadius: const BorderRadius.all(Radius.circular(8)),\n),\n```\n\nwhen time planner widget loaded it will be scroll to current local hour and this option is true by default, you can turn this off like this:\n\n```dart\ncurrentTimeAnimation: false,\n```\n\n### Note\n\nIf you use desktop or web platform and want users to be able to move with the mouse in the time planner, add this code to the code:\n\n```dart\nclass MyCustomScrollBehavior extends MaterialScrollBehavior {\n  // Override behavior methods and getters like dragDevices\n  @override\n  Set\u003cPointerDeviceKind\u003e get dragDevices =\u003e {\n    PointerDeviceKind.touch,\n    PointerDeviceKind.mouse,\n  };\n}\n\n// Set ScrollBehavior for an entire application.\nMaterialApp(\n  scrollBehavior: MyCustomScrollBehavior(),\n  // ...\n);\n```\n\n---\n\nFill free to fork this repository and send pull request 🏁👍\n\n[Medium post](https://yaus.ir/4n7MeZ)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamalianpour%2Ftime_planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamalianpour%2Ftime_planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamalianpour%2Ftime_planner/lists"}